【问题标题】:ajaxslt unable to get node using XPATHajaxslt 无法使用 XPATH 获取节点
【发布时间】:2012-08-15 17:44:03
【问题描述】:

我正在使用 ajaxslt javascript 库。(http://code.google.com/p/ajaxslt/) 我正在尝试使用 XPATH 获取节点

我的XML如下:

  <page>
            <message>
              Hello World.
            </message>
          </page>

我正在尝试使用 //page 以便我可以在页面下方的所有节点,即消息节点。当我尝试打印相同的。我只得到 Hello World 作为输出。

以下是我使用的代码sn-p。

<script src="./js/xpath.js" language="JavaScript"></script>
<script src="./js/xpath_script.js" language="JavaScript"></script>
<script type="text/javascript">

function showMessage(){ var xml = document.getElementById('xml'); var ctx = new ExprContext(xmlParse(xml.value)); var expr = xpathParse("//page"); var result = expr.evaluate(ctx); alert("res:"+result.stringValue()); }

谁能告诉我我在这里做错了什么?

提前致谢。

萨拉瓦南K

【问题讨论】:

    标签: javascript xml xpath


    【解决方案1】:

    您必须使用:

    //page/message
    

    这通常选择多个message 元素。您需要遍历返回的节点列表并生成每个选定message 元素的字符串值。

    【讨论】:

    • 有没有办法使用 xpath ajaxslt 库获取节点 Hello World
    • @SaravananK,我的答案中的 XPath 表达式在提供的 XML 文档上就是这样做的。如果您的 XML 文档不同,那么在没有首先看到新的 XML 文档的情况下,就无法为您提供选择特定节点的 XPath 表达式。我的猜测是在您没有向我们展示的文档中,顶部元素page 的子元素有很多message。要选择您在评论中请求的节点,请使用:/*/message[.='Hello World'] 这将选择字符串值为 "Hello world" 并且是顶部元素 page 的子元素的任何 message 元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    相关资源
    最近更新 更多