XmlJsonDataFormat xmlJsonFormat = new XmlJsonDataFormat();
xmlJsonFormat.setEncoding("UTF-8");
xmlJsonFormat.setForceTopLevelObject(true);
xmlJsonFormat.setTrimSpaces(true);
xmlJsonFormat.setSkipNamespaces(true);
xmlJsonFormat.setRemoveNamespacePrefixes(true);
从源目录中汇集XML文件,并在将其发送到目标目录之前将其转换为JSON格式
from("file:/inn?noop=true").marshal(xmlJsonFormat)
.setHeader(Exchange.FILE_NAME, simple("${file:onlyname.noext}.json"))
.to("file:/out").end();
当我想要一个不使用POJO的XML的JSON字符串时,它很有用。
但现在考虑一个XML,我想省略一个元素。 我应该使用另一个lib而不是camel-xmljson吗? 这是实现它的正确方法:
答案 0 :(得分:0)
我明白,即使我会尽量避免在骆驼路线中使用任何POJO。
话虽如此,我不会直接让XML出来。我会在xmljson组件之后放一个XSLT,这样我就可以修剪xml以获得所需的输出。
答案 1 :(得分:0)
谢谢gnanagurus!使用XSLT非常简单。此外,xslt:组件包含在Camel核心的最后一个版本中。 我定义了一个xlst文件'transform.xsl'taht包含了要省略的字段。然后定义了Camel路线:
from("file:/inn?noop=true")
.to("xslt:file:src/transform.xsl")
.marshal(xmlJsonFormat)
.setHeader(Exchange.FILE_NAME, simple("${file:onlyname.noext}.json"))
.to("file:/out").end();