基于 ID 值的 XPath 过滤器
XPath filter on the basis of ID value
从下面 XML 我想提取 values/value
标签下的 Mobile_Number
值。我怎样才能使它通用,因为我们以后可以有多个选项而不是单个 Mobile_Number
选项。
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<header>
<businessTransactionID>ABCD</businessTransactionID>
<externalCorrelationID>UABCD</externalCorrelationID>
<sentTimestamp>2016-12-23T14:21:11.261+01:00</sentTimestamp>
<sourceContext>
<host>Whosebug</host>
<application>browser</application>
<operation>ExtractXMLTAGVALUE</operation>
</sourceContext>
</header>
<body>
<serviceCharacteristic>
<specification>
<ID>Mobile_Number</ID>
</specification>
<values>
<value>13008421</value>
</values>
</serviceCharacteristic>
</body>
</Request>
我尝试了以下 XPath 查询但没有成功:
//*[local-name()='name'][text()='Mobile_Number']/../*[local-name()='value']/text()
下面的查询将起作用,但它又不是基于 Mobile_Number
-
的 ID 值
string(/*/*/*[local-name()='serviceCharacteristic']/*/*[local-name()='value'])
这个怎么样?
//serviceCharacteristic[specification/ID='Mobile_Number']/values/value/text()
从下面 XML 我想提取 values/value
标签下的 Mobile_Number
值。我怎样才能使它通用,因为我们以后可以有多个选项而不是单个 Mobile_Number
选项。
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<header>
<businessTransactionID>ABCD</businessTransactionID>
<externalCorrelationID>UABCD</externalCorrelationID>
<sentTimestamp>2016-12-23T14:21:11.261+01:00</sentTimestamp>
<sourceContext>
<host>Whosebug</host>
<application>browser</application>
<operation>ExtractXMLTAGVALUE</operation>
</sourceContext>
</header>
<body>
<serviceCharacteristic>
<specification>
<ID>Mobile_Number</ID>
</specification>
<values>
<value>13008421</value>
</values>
</serviceCharacteristic>
</body>
</Request>
我尝试了以下 XPath 查询但没有成功:
//*[local-name()='name'][text()='Mobile_Number']/../*[local-name()='value']/text()
下面的查询将起作用,但它又不是基于 Mobile_Number
-
string(/*/*/*[local-name()='serviceCharacteristic']/*/*[local-name()='value'])
这个怎么样?
//serviceCharacteristic[specification/ID='Mobile_Number']/values/value/text()