2016-11-16 98 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