【问题标题】:Unable to read nodeValue using XPath when namespace is present存在命名空间时无法使用 XPath 读取 nodeValue
【发布时间】:2012-04-25 09:19:47
【问题描述】:
<?xml version="1.0" encoding="UTF-8" ?>
<BO xmlns="http://hg.com/bo" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xsi:schemaLocation="http://hg.com/bo http://hg.com/bo.xsd">
<b>Harsh</b>
</BO>

我正在尝试使用 XPath 读取标签内的 Harsh

当命名空间不存在时,我可以使用这条 javascript 行

var path = "/BO/b";
var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);

我应该对路径进行哪些更改才能获取节点 b?

【问题讨论】:

    标签: javascript xml xpath


    【解决方案1】:

    为了在(默认)命名空间中定义的 XML 内容上使用 XPath 表达式,您需要指定命名空间前缀映射。您需要通过某种方式在 XPath 表达式中指定要在“http://hg.com/bo”命名空间中查找所有“b”元素。

    在您的情况下,您可以使用“ex”前缀并将此前缀映射到“http://hg.com/bo”命名空间 URI。这将导致以下 XPath 表达式应返回在“http://hg.com/bo”命名空间中声明的所有“b”元素:“//ex:/BO/b”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多