【发布时间】:2011-10-09 08:15:45
【问题描述】:
我需要创建一个 XML xPath 解析器。所有解析都必须发生在客户端(使用 javascript)。我创建了一个执行此操作的 javascript,在默认命名空间发挥作用之前,一切看起来都很好。我根本无法查询具有默认命名空间的 XML。
我在小提琴上创建了一个示例代码。在 xmlString 中是从服务器接收的 XML 字符串。在 xPathString 中是对接收到的 XML 进行查询。
这里有一些场景:
- http://jsfiddle.net/BF34q/1/ - 没有命名空间 - 一切正常
- http://jsfiddle.net/BF34q/2/ - 添加了 ns 命名空间。元素有 ns: 前缀。 xPath 使用此前缀 - 好的
- http://jsfiddle.net/BF34q/3/ - 使用默认命名空间 - 不确定如何配置 xPathString。
注意其他人会使用这个解析器,所以我真的很想避免这样的解决方案
var xPathString = "//*[local-name()='book']";
并使他们能够使用简单的 xPath 表达式对其进行解析。我想知道是否可以在 javascript 中分配默认命名空间前缀?
注意:fiddle 上提供的示例在 IE 中不起作用。
【问题讨论】:
标签: javascript xml xpath namespaces