XPath来WS XML响应内解析XML
问题描述:
我查询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我得到什么
我不知道发生了什么。任何帮助或信息非常感谢,因为我需要这对我的工作
预先感谢这需要一段可以用来帮助别人的人!
答
注意,没有后代从祖先继承前缀的默认命名空间的元素,含蓄。这意味着,在给定的XML,所有的元素都在命名空间“东西”,所以你需要在你的XPath使用local-name()
为每个元素:
//*[local-name()='someparentnode']
/*[local-name()='Response']
/*[local-name()='ResponseOK']
/*[local-name()='SOMEDATA3']
因此,这将是// * [本地名称()= 'someparentnode']/* [本地名称()= '响应']/* [本地名称()= 'ResponseOK']/* [本地名称()= 'SOMEDATA3'] ?? –
我必须说,xpath没有检索任何结果:/ –
也许没有'* [local-name()='someparentnode']'部分..因为在您发布的XML中没有这样的元素 – har07