2016-04-05 4 views
1

Ich muss Dataweave-Code für die Umwandlung von CSV in XML schreiben. Meine Ausgabe-XML sollte keine XML-Deklaration ('<?xml version='1.0' encoding='UTF-8'?>') enthalten.XML-Deklaration auslassen beim Schreiben in Datei mit Dataweave

dataweave Code:

%dw 1.0 
%output application/xml 
--- 
parent :{ 
    child1:payload.input1, 
    child2:payload.input2 
} 

erwartete Ausgabe:

<parent> 
    <child1></child1> 
    <child2><child2> 
</parent> 

vorhanden Ausgang:

<?xml version='1.0' encoding='UTF-8'?> 
<parent> 
     <child1></child1> 
     <child2></child2> 
</parent> 

bitte machen Sie mir die Richtlinie in Header Abschnitt hinzugefügt werden. Danke

+0

Hallo @Masetti, das einzige, was ich gefunden habe, ist XSLT verwenden, um die XML-Deklaration wegzulassen. Bitte beachten Sie diesen Link: http://StackOverflow.com/Questions/14800746/need-to-remove-xml-version-1-0-encoding-utf-16-from-the-xml –

Antwort

0

Sie haben nicht eine Möglichkeit, soweit ich weiß, dass Dataweave diese Deklaration nicht enthalten soll, am Ende ist das ein STANDARD-XML. Hat @ ralph-rimorin vorgeschlagen, dass Sie XSLT verwenden könnten, aber für Ihren Fall würde ich etwas schmutziges tun, aber wahrscheinlich schneller, das ist eine einfache Zeichenfolge ersetzen wie folgt.

<set-payload value="#[message.payloadAs(String).replace('<?xml version="1.0" encoding="UTF-8"?>','')]" doc:name="Remove xml header"/> 

Nur denken Sie daran, dass dies Ihr XML gesetzt werden muss Zeichenfolge in Nutzlast und nicht als DOM-Objekt, aber das ist kein Problem in den meisten mule esb Anwendungsfälle.

Verwandte Themen