我试图根据包含名称空间的xml文件中元素的值选择一个节点。
我正在使用Automation Anywhere的Get XML Node命令,该命令将我限制为仅使用一行XPath语句。
这是示例xml文件
<IMPORT xmlns="urn:Import">
<STUFF>
<STUFF_TYPE>
<STUFF_TYPE_KEY>1</STUFF_TYPE_KEY>
</STUFF_TYPE>
<WALMART>
<STORE>
<STORE_ID TYPE="SC" ID="SC-12345">WM000001</STORE_ID>
<STORE_STATUS>O</STORE_STATUS>
</STORE>
</WALMART>
</STUFF>
</IMPORT>
我想选择STORE_STATUS值,其中STORE_ID = WM000001
现在,它找不到该节点。
答案 0 :(得分:0)
您可以使用与名称空间无关的表达式,例如
//*[local-name() = 'STORE']/*[local-name() = 'STORE_ID' and text() = 'WM000001']/../*[local-name() = 'STORE_STATUS']
这将从所有STORE_STATUS
个具有STORE
子元素的STORE_ID
元素中选择WM000001
元素。如果只需要该值,请在表达式的末尾添加一个/text()
。
答案 1 :(得分:0)
这最终成功了:
//*[local-name() = 'STORE']/*[local-name() = 'STORE_ID' and text() = 'WM000001']/following-sibling::*[local-name() = 'STORE_STATUS']