XMLを文字列として変換する
-
22-09-2019 - |
質問
たとえば、SOAPリクエストメッセージのタグコンテンツとしてxmlをWebサービスに送信する必要があるシナリオがあります。
<arg_1><xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag></arg_1></code>
arg_1 は Web サービスへの 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 は、逆シリアル化しようとしたもので、予期しない子要素を検出しました。解析中のメッセージ:
この例外が引き続き発生します。これを見たことがありますか??
解決
これに対処する方法はいくつかあります -
- XML プロローグを削除し、元の XML ドキュメントを他のドキュメントの要素のコンテンツに挿入します。
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
- 他のテキスト コンテンツと同様に元の XML ドキュメントをエスケープし、結果のテキストを要素のコンテンツに挿入します。
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
他のヒント
私のXMLは正常にCDATA内ではなかった前記
私は、同様の問題に直面していました。 タグは文字列として扱われるようにするために、あなたは以下のように使用する必要があります:
<![CDATA[ ---your xml---- ]]>
しかし、あなたが使用していませんか? XMLバージョンの前に。タグはする必要があります
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
あなたのケースその<xml version="1.0" encoding="UTF-8" standalone="yes"?>
に。
所属していません StackOverflow