2016-04-05 18 views
1

Veri kaynağına csv'yi xml'ye dönüştürmek için veri yazmalıyım. Çıktılarım xml, xml bildirimi ('<?xml version='1.0' encoding='UTF-8'?>') içermemelidir.Dataweave kullanarak dosyaya yazarken xml bildirimi atla

dataweave kodu:

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

beklenen çıkışı:

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

mevcut çıkışı:

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

bana başlıkları bölümünde eklenecek yönergesini önerilerde bulunun. teşekkürler

+0

Merhaba @masetti, bulduğum tek şey, xml bildirimini atlamak için XSLT kullanmaktır. Lütfen şu bağlantıya bakın: http://stackoverflow.com/questions/14800746/need-to-remove-xml-version-1-0-encoding-utf-16-from-the-xml –

cevap

0

Bu beyanı içermemesini, dataweave'in bir STANDARD xml olması gerektiğini bildiğim kadarıyla bir yönteminiz yok. Has @ ralph-rimorin XSLT'yi kullanabilmenizi önerdi, ama sizin durumunuz için biraz kirli ama muhtemelen daha hızlı olan basit bir dizgenin yerine aşağıdaki gibi bir şey yapacağım. Sadece bu XML'inizi ayarlar unutmayın

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

yükü içinde değil DOM nesnesi olarak dize var ama bu katır esb kullanım durumları çoğunda bir sorun değildir.