Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 使用XPath获取特定标记的文本_Xml_Xpath - Fatal编程技术网

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

Xml 使用XPath获取特定标记的文本,xml,xpath,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</Busin

我试图通过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>

使用者
礼品卡
地址
兰斯洛特
电子邮件地址
TEST@TEST.COM
我想通过XPath从具有
email\u addr
键中获取
值,因此我想要一个返回值
TEST@TEST.COM

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

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

我想知道我可以使用什么XPath来获得那个特定的值?

这个XPath应该可以

/OMRequest/Data/Item[Key[.=“email\u addr”]]/Value/text()

晚了一点,但更简洁完整了一点

这个XPath

string(/OMRequest/Data/Item[Key="email_addr"]/Value)
将选择与给定
元素关联的
元素的字符串值

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