使用 XPath 抓取特定标签的文本



我正在尝试通过XPath从XML中的特定键中提取值。


我有以下 XML:

<?xml version="1.0" encoding="UTF-8"?>
<OMRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ApplicationId>User</ApplicationId>
    <BusinessProcessId>GiftCard</BusinessProcessId>
    <Data>
        <Item>
            <Key>fsf_addr</Key>
            <Value>Lancelot</Value>
        </Item>
        <Item>
            <Key>email_addr</Key>
            <Value>TEST@TEST.COM</Value>
        </Item>
    </Data>
</OMRequest>

我想从通过 XPath email_addrkey中获取value,所以我想要一个返回值 TEST@TEST.COM 的 XPath。

我有以下XPath,但是,这将获取第一个值:

/OMRequest/Data/Item/Value/text() .

我想知道我可以使用什么 XPath 来获取该特定值?

这个 XPath 应该做

/OMRequest/Data/Item[Key[.="email_addr"]]/Value/text()

有点晚了,但更简洁和完整...

这个XPath,

string(/OMRequest/Data/Item[Key="email_addr"]/Value)

将选择与给定Key元素关联的Value元素的字符串值。

如果您希望

返回并比较空间规范化值而不是精确的字符串值,请将string()替换为 normalize-space()Key替换为 normalize-space(Key)

最新更新