gpt4 book ai didi

java - 如何通过带有 CDATA 中的 CDATA 的 SOAP UI 向 Java 应用程序发送请求?

转载 作者:行者123 更新时间:2023-11-30 10:23:16 35 4
gpt4 key购买 nike

我在解析 XML 时遇到以下异常

org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.

我发送的 SOAp 请求:

<soap:Envelope>
<soap:Header/>
<soap:Body>
<ver:ReceiveOnlineBatchExternalAttachment>
<web:username>user</web:username>
<web:passwd>pass</web:passwd>
<web:receiversReference>1232323</web:receiversReference>
<web:sequenceNumber>1</web:sequenceNumber>
<web:batch>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<DataBatch>
<DataUnits>
<DataUnit>
<FormTask>
<ServiceCode>323015</ServiceCode>
<Form>
<FormData>
<![CDATA[<melding> </melding>]]
</FormData>
</Form>
</FormTask>
</DataUnit>
</DataUnits>
</DataBatch>
]]>>
</web:batch>
</ver:ReceiveOnlineBatchExternalAttachment>
</soap:Body>
</soap:Envelope>

我对 CDATA 进行了多次更改,但都遇到了同样的错误。谁能建议如何在此请求中处理 CDATA 中的 CDATA?

尝试以下但失败:

         <![CDATA[ <elements> <![CDATA[<melding> </melding>]] <elements> ]]>>
<![CDATA[ <elements> <![CDATA[<melding> </melding>]]> <elements> ]]>
<![CDATA[ <elements> &lt;![CDATA[<melding> </melding>]]&gt; <elements> ]]>

最佳答案

我推测您的问题实际上是由嵌套 CDATA 引起的内容。您可以尝试以下操作吗:

<![CDATA[
<DataBatch>
<DataUnits>
<DataUnit>
<FormTask>
<ServiceCode>323015</ServiceCode>
<Form>
<FormData>
<![CDATA[
<melding> </melding>
]]]]><![CDATA[>
</FormData>
</Form>
</FormTask>
</DataUnit>
</DataUnits>
</DataBatch>
]]>

这里技巧的要点是,当解析器命中内部嵌套的 <![CDATA[ 时它实际上会忽略它。然后,当它遇到这个时:

]]]]><![CDATA[>

第一个]]也会被忽略,下面的]]>将被消耗,关闭外部 CDATA,然后立即再次打开一个新的 CDATA,这应该持续到外部关闭。

@fatherazrael 编辑:

删除 XML 标签 <?xml version="1.0" encoding="UTF-8"?>

引用:Nested CDATA - correctly

关于java - 如何通过带有 CDATA 中的 CDATA 的 SOAP UI 向 Java 应用程序发送请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47094708/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com