我有一个像
<root xmlns:ns1="http://foo">
<ns1:child1>Text</ns1:child1>
<ns1:child2>Number</ns1:child2>
</root>
现在我从不同的人那里得到这个信息,例如,第2个人向我发送了另一条具有相同结构的消息,例如
<root xmlns:anotherNs="http://foo">
<anotherNs:child1>Another Text</anotherNs:child1>
<anotherNs:child2>Another Number</anotherNs:child2>
</root>
因此,唯一的区别是 namespace 的名称。如何使用一个XPath表达式为两个xml选择child2的内容?
诸如“/root/child2”或“//child2”之类的东西不起作用。
最佳答案
像这样使用 local-name()
函数:
//*[local-name()='child2']
关于xpath - 使用XPath选择不带 namespace 的节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15139979/