2016-11-16 111 views
0

我查詢WS,我可以使用XPath // *解析[本地名稱()= 'someparentnode'] 了XPath的結果檢索這樣XPath來WS XML響應內解析XML

<?xml version="1.0" encoding="ISO-8859-1"?> 
<Response xmlns="SOMETHING">  
    <SOMEDATA>OK</SOMEDATA> 
    <SOMEDATA1>110075700011</SOMEDATA1> 
    <ResponseOK>   
     <SOMEDATA3>123123</SOMEDATA3>  
     <SOMEDATA4>asda</SOMEDATA4> 
    </ResponseOK> 
</Response > 
一個xml

我需要SOMEDATA3的值,但是當我嘗試做// * [本地名稱()=「someparentnode」] /響應/ ResponseOK/SOMEDATA3我得到什麼

我不知道發生了什麼。任何幫助或信息非常感謝,因爲我需要這對我的工作

預先感謝這需要一段可以用來幫助別人的人!

回答

0

注意,沒有後代從祖先繼承前綴的默認命名空間的元素,含蓄。這意味着,在給定的XML,所有的元素都在命名空間「東西」,所以你需要在你的XPath使用local-name()爲每個元素:

//*[local-name()='someparentnode'] 
/*[local-name()='Response'] 
/*[local-name()='ResponseOK'] 
/*[local-name()='SOMEDATA3'] 
+0

因此,這將是// * [本地名稱()= 'someparentnode']/* [本地名稱()= '響應']/* [本地名稱()= 'ResponseOK']/* [本地名稱()= 'SOMEDATA3'] ?? –

+0

我必須說,xpath沒有檢索任何結果:/ –

+0

也許沒有'* [local-name()='someparentnode']'部分..因爲在您發佈的XML中沒有這樣的元素 – har07