使用XPath获取特定标记的文本

时间:2018-04-12 01:22:17

标签: xml 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从value获取key,因此我想要一个返回值email_addr的XPath。

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

TEST@TEST.COM

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

2 个答案:

答案 0 :(得分:1)

这个XPath应该

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

答案 1 :(得分:1)

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

这个XPath,

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

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

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