【发布时间】:2011-05-25 08:05:08
【问题描述】:
我的目标是使用 XPath 从具有多个名称空间的多个 XML 文件中提取某些节点。只要我知道命名空间 URI,一切都可以正常工作。命名空间名称本身保持不变,但模式(XSD)有时是客户端生成的,即我不知道。那么我基本上只有三个选择:
- 只为命名空间使用一个架构,希望不会出错(我可以确定吗?)。
- 获取文档的子节点并查找具有命名空间 URI 的第一个节点,希望它存在并且只使用 URI,希望它是正确的。这可能会因多种原因出错
- 不知何故告诉 xpath:“看,我不关心命名空间,只需找到具有此名称的所有节点,我什至可以告诉你命名空间的名称,而不是 URI”。这就是这里的问题...
这不是重复出现在here 或here 中的众多“我的 xpath 表达式不起作用,因为我不知道命名空间意识”问题。我知道如何使用命名空间感知,只是不知道如何摆脱它。
【问题讨论】:
-
如果你不知道模式,你怎么知道你想要什么元素?
-
感谢您指出,亚历杭德罗。搜索“ignore namespace xpath”应该会显示这个,但它没有
-
@kostja:不要用SO搜索框搜索,没用的……下次试试谷歌。事实上,这是 SO 团队鼓励的。
-
Google 站点搜索实际上在查找 SO 上的有用内容方面做得更好。我想知道为什么它不是默认选项。再次感谢亚历杭德罗
标签: xml xpath namespaces xml-namespaces