...
<element>
<e:Element1 xmlns:e="mynamespace" > ... </.. >
<e:Element1 xmlns:e="mynamespace" > ... </.. >
<e:Element1 xmlns:e="mynamespace" > ... </.. >
<a/>
</element>
...
和这个XPath:
//*[local-name()='element']/count(*)
返回4什么是OK。但是现在我想知道element1的个数是多少,我尝试了很多可能性,但都没有成功。我必须使用本地名称和namespace-uri()
发布于 2011-09-13 04:36:25
您可以尝试以下操作:
count(//element/Element1[namespace-uri()='mynamespace'])
发布于 2011-09-13 06:50:51
如果您在Java或C#等环境中使用XPath,则应首先将前缀绑定到名称空间,这取决于您正在使用的API,但类似于
xpath.declareNamespace("f", "mynamespace")
然后计算XPath表达式
count(element/f:Element1)
我特意选择了一个与源文档中的前缀不同的前缀,只是为了表明您可以使用您喜欢的任何前缀,当然,如果您在前缀的选择上保持一致,那么代码的可读性会更好。
https://stackoverflow.com/questions/7393541
复制相似问题