2016-12-23 84 views
0

從下面的XML我想提取Mobile_Number值,它是在values/value標記下。我怎樣才能使這個通用,因爲我們可以稍後有多個選項,而不是單個Mobile_Number選項。基於ID值的XPath過濾器

<?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>stackoverflow</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() 

下面的查詢工作,但隨後又不是ID值,在此基礎上爲Mobile_Number上 -

string(/*/*/*[local-name()='serviceCharacteristic']/*/*[local-name()='value']) 

回答

2

這個怎麼樣?

//serviceCharacteristic[specification/ID='Mobile_Number']/values/value/text() 
+0

謝謝托馬斯,它工作。 –