Webservice服务请求参数xml嵌套问题CDATA嵌套今天在对接某政府服务平台需要使⽤webservice服务进⾏对接,参考第三⽅提供的对接⽂档,截图如下:
<?xml version="1.0" encoding="UTF-8"?>
<ReqPacket xmlns:xsi="/2001/XMLSchema-instance">
<Header>
<requestId>402881ed491324d1014913260a410001(调⽤⽅⽣成)</requestId>
<from>xxxxx</from>
<instruct> (调⽤的接⼝实例)</instruct>
</Header>
<Content>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<ProjectCodeServiceRequest>
< formTemplateUID >参数(对象ID)</ formTemplateUID >
</ProjectCodeServiceRequest>
]]>
</Content>
</ReqPacket>
通过上述调⽤⽅参数传递的⽅式可以看出,这⾥涉及xml 嵌套/CDATA嵌套
第⼀步:使⽤SoapUI 模拟webservice 请求,按照⽂档要求,进⾏相关参数传递
我将⽂档⽰列参数,⼀股脑全部拷贝⾄soapUI 模拟器中,点击请求得到如右截图的效果。
错误原因:没有正确处理xml 内容嵌套。
第⼆步:修改请求参数,处理xml内容嵌套/CDATA嵌套
处理完XML/CDATA嵌套,但是右图还是提⽰相关错误信息。
造成的错误原因:格式不正确,通过在线xml 检测即可发现xml ⽂件存在的问题。
XML/CDATA嵌套原因:
在CDATA内部的所有内容都会被解析器忽略。⼀个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记
结束。但是CDATA是不能够嵌套的。
调用webservice服务因此CDATA嵌套导致的XML解析错误的问题,参考⽹上处理⽅式,解决这个问题只需要将"]]>"替换成"]]]]><![CDATA[>",替换后⽂本作为CDATA参数传⼊,将原CDATA识别为多个CDATA,⾃动连接后返回。
经过在线xml 检测,修改相关xml ⽂件,最终测试效果:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论