我正在尝试通过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_addr
的key
中获取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)
。