Xml 使用XPath获取特定标记的文本
我试图通过XPath从XML中的特定键中提取值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
我有以下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)