【问题标题】:Omit xml declaration while writing to file using dataweave使用 dataweave 写入文件时省略 xml 声明
【发布时间】:2018-03-23 18:30:39
【问题描述】:

我需要编写将 csv 转换为 xml 的 dataweave 代码。我的输出 xml 不应包含 xml 声明('<?xml version='1.0' encoding='UTF-8'?>')

数据编织代码:

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

预期输出:

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

当前输出:

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

请建议我在标题部分添加的指令。谢谢

【问题讨论】:

标签: xml mule dataweave


【解决方案1】:

使用

%output application/xml writeDeclaration=false

【讨论】:

    【解决方案2】:

    据我所知,您没有办法要求 dataweave 不包含该声明,最后是标准 xml。 @ralph-rimorin 是否建议您可以使用 XSLT,但对于您的情况,我会做一些有点脏但可能更快的事情,这是一个简单的字符串替换,如下所示。

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

    请记住,这将设置您的 XML 在有效负载中包含字符串,而不是作为 DOM 对象,但这在大多数 mule esb 用例中都不是问题。

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 2017-01-08
      • 1970-01-01
      • 2010-11-05
      相关资源
      最近更新 更多