将xml转换为字符串

时间:2010-03-27 04:54:45

标签: xml web-services xml-serialization oracle-service-bus

我有一个场景,我需要将一个xml作为SOAP请求消息中的标记内容发送到Web服务,例如

<arg_1><xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag></arg_1></code>

arg_1恰好是webservice的String参数。所以我带来了CDATA部分

<arg_1><![CDATA[<xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag>]]></arg_1>

但这不断给我一个例外

org.xml.sax.SAXException:WSWS3084E:错误:SimpleDeserializer在尝试反序列化的内容中遇到了一个不期望的子元素。正在解析的消息:

我一直得到这个例外。有没有人见过这个?

2 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题 -

  1. 删除XML Prolog并将原始XML文档插入到另一个文档中元素的内容中。
  2. <arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
    
    1. 像对待任何其他文本内容一样转义原始XML文档,并将生成的文本插入元素的内容中。
    2. <arg_1>&lt;sometag&gt;&lt;somemoretag&gt;abcd&lt;/somemoretag&gt;&lt;/sometag&gt;</arg_1>
      

答案 1 :(得分:0)

我遇到过类似的问题,其中我的xml不在CDATA内部。 要将标记视为String,您必须使用如下:

 <![CDATA[ ---your xml---- ]]>

但你还没用过?在xml版本之前。标签应该是 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 在你的情况下是<xml version="1.0" encoding="UTF-8" standalone="yes"?>