emr*_*ins 6 xpath xml-namespaces
所以我有一个文件,看起来像
<a xmlns="uri1" xmlns:pre2="uri2">
<b xmlns:pre3="uri3">
<pre3:c>
<stuff></stuff>
<goes></goes>
<here></here>
</pre3:c>
<pre3:d xmlns="uri4">
<under></under>
<the></the>
<tree></tree>
</pre3:d>
</b>
</a>
Run Code Online (Sandbox Code Playgroud)
我想要一个可以得到我的 xpath 表达式<under>。
它有一个 uri4 的 namespaceURI。
现在我的表情是这样的:
//ns:a/ns:b/pre3:d/pre4:under
Run Code Online (Sandbox Code Playgroud)
我让命名空间管理器为默认命名空间(在本例中为 uri1)添加了“ns”,并分别为 uri2、uri3 和 uri4 定义了 pre2、pre3 和 pre4。
我收到错误“表达式必须评估为节点集”。
我知道该节点存在。我知道直到pre4:under在我的 xpath中的所有内容都可以正常工作,因为我在文档的其余部分使用它没有任何问题。这pre4:under是导致错误的附加因素,我不确定为什么。
有任何想法吗?
谢谢。
解析度:
感谢大家坚持认为它是正确的——它是正确的。但是......在我的代码中,我将“pre4”作为“64”(一个变量),它不喜欢一个整数作为前缀。将其更改为“d”+ myintvariable 有效。
我的猜测是,您用来导航 XML 的实现可能存在错误。使用SketchPath,以下 XPath 成功导航到该节点:
/def:a/def:b/pre3:d/def2:under
Run Code Online (Sandbox Code Playgroud)
您可以尝试为 XPath 中的名称空间指定不同的前缀吗?否则,如果性能并不是真正的问题,并且它是一个独特的节点,那么您可以尝试//under
| 归档时间: |
|
| 查看次数: |
7918 次 |
| 最近记录: |