这个问题很愚蠢,但我完全被卡住了。我想根据条件提取节点的子节点。XML如下:
<a>
<aCode>aaa</aCode>
<aValue>bbb</aValue>
</a>
表达很明显://a[aCode='aaa']
但是如果它与命名空间一起使用并且我必须使用local-name()
. 我已经测试了以下内容,它给出了解析错误:
/*[local-name()='a'][[local-name()='aCode']='aaa']
有人知道我应该做什么吗?
你可能是说
//*[local-name()='a'][*[local-name()='aCode']='aaa']
尝试这个
/a/aCode[text()='aaa']
或者
//*[local-name() = 'aCode' and text() = 'aaa']
你用//
错地方了。
这一项工作:
//*[local-name()='a'][*[local-name()='acode' and text()='a2']]
还有这个:
//*[local-name()='a'][aCode[text()='a2']]