Convertire XML come stringa
-
22-09-2019 - |
Domanda
Ho uno scenario in cui in ho bisogno di inviare un XML come contenuto del tag in un messaggio di richiesta SOAP per un webservice per esempio
<arg_1><xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag></arg_1></code>
Arg_1 sembra essere un parametro stringa in un webservice. Così ho portare in una sezione CDATA di questo
<arg_1><![CDATA[<xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag>]]></arg_1>
Ma questo mi tiene un'eccezione
org.xml.sax.SAXException: WSWS3084E: Errore: SimpleDeserializer ha rilevato un elemento secondario, che non è previsto, in qualcosa che stava cercando di deserializzare. Messaggio di essere analizzato:
Continuo a ricevere questa eccezione. Qualcuno ha visto questo prima ??
Soluzione
Ci sono un paio di modi si potrebbe gestire questo -
- Rimuovere l'XML Prolog e inserire il documento XML originale nel contenuto di un elemento nell'altro documento.
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
- Escape il documento XML originale, come si farebbe con qualsiasi altro contenuto del testo e inserire il testo risultante nel contenuto di un elemento.
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
Altri suggerimenti
Avevo affrontato problema simile, in cui il mio XML non era all'interno della CDATA correttamente. Per i tag di essere trattati come String è necessario utilizzare come di seguito:
<![CDATA[ ---your xml---- ]]>
Tuttavia non hanno utilizzato il? prima che la versione xml. Il tag deve essere
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Nel tuo caso la sua <xml version="1.0" encoding="UTF-8" standalone="yes"?>
.