这个问题非常愚蠢,但我完全陷入困境。我想根据条件提取节点的子节点。 XML如下:
<a>
<aCode>aaa</aCode>
<aValue>bbb</aValue>
</a>
表达很明显://a[aCode='aaa']
但是,如果它是名称空间而我必须使用local-name()
,我无法知道如何更改它。我在http://www.xmlme.com/XpathTool.aspx测试了以下内容,它给出了一个解析错误:
/*[local-name()='a'][[local-name()='aCode']='aaa']
有谁知道我应该做什么?
答案 0 :(得分:43)
你可能意味着
//*[local-name()='a'][*[local-name()='aCode']='aaa']
答案 1 :(得分:12)
试试这个
/a/aCode[text()='aaa']
或
//*[local-name() = 'aCode' and text() = 'aaa']
您在错误的地方使用了//
。
答案 2 :(得分:1)
这一项工作:
//*[local-name()='a'][*[local-name()='acode' and text()='a2']]
还有这一个:
//*[local-name()='a'][aCode[text()='a2']]