如何处理 xml 标签中的下划线。这是我正在工作的代码。它为我生成带有双下划线(“__”)而不是单下划线(“_”)的 xml 标记。谁能帮助我克服这个问题。ConverterRoute.Javapublic class ConverterRoute implements RoutesBuilder { private static final String SOURCE_INPUT_PATH = "file://inbox?fileName=Source.txt"; private static final String SOURCE_OUTPUT_PATH = "file://outbox?fileName=file_$simple{date:now:yyyyMMddHHmmssSSS}.xml"; public void addRoutesToCamelContext(CamelContext context) throws Exception { context.addRoutes(new RouteBuilder() { public void configure() { try { DataFormat bindyFixed = new BindyCsvDataFormat(Test.class); XStreamDataFormat xStreamDataFormat = new XStreamDataFormat(); xStreamDataFormat.setAliases(Collections.singletonMap("TEST_INB",Test.class.getCanonicalName())); from(SOURCE_INPUT_PATH). split().tokenize(System.lineSeparator()). unmarshal(bindyFixed). marshal(xStreamDataFormat). to(SOURCE_OUTPUT_PATH).log("Finished Transformation").end(); } catch (Exception e) { e.printStackTrace(); } } }); }}CamelConfig.java@Componentpublic class CamelConfig extends RouteBuilder { @Override public void configure() throws Exception { try { CamelContext context = new DefaultCamelContext(); ConverterRoute route = new ConverterRoute(); route.addRoutesToCamelContext(context); context.start(); Thread.sleep(5000); context.stop(); } catch (Exception exe) { exe.printStackTrace(); } }}
1 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
XStream 在生成 XML 时在内部使用下划线来转义字符。
您可以尝试使用自定义驱动程序(而不是默认驱动程序):
XmlFriendlyNameCoder nameCoder = new XmlFriendlyNameCoder("_-", "_");
Dom4JDriver myCustomDriver = new Dom4JDriver(nameCoder);
...
XStreamDataFormat xStreamDataFormat = new XStreamDataFormat();
xStreamDataFormat.setDriver(myCustomDriver);
或者,如果不起作用,可以尝试使用其他备用驱动程序:
DomDriver myCustomDriver = new DomDriver("UTF_8", new NoNameCoder());
希望这有效!
添加回答
举报
0/150
提交
取消