使用 XPath 获取具有命名空间的 XML 节点



我正在尝试根据包含命名空间的 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_ID = WM000001的STORE_STATUS值

现在,它没有找到节点。

您可以使用与命名空间无关的表达式,例如

//*[local-name() = 'STORE']/*[local-name() = 'STORE_ID' and text() = 'WM000001']/../*[local-name() = 'STORE_STATUS']

这将从具有值为 WM000001 的所有STORE元素中选择具有STORE_ID子元素的 STORE_STATUS 元素。如果只需要该值,请在表达式末尾添加一个/text()

这最终起作用了:

//*[local-name() = 'STORE']/*[local-name() = 'STORE_ID' and text() = 'WM000001']/following-sibling::*[local-name() = 'STORE_STATUS']

相关内容

  • 没有找到相关文章

最新更新