为了账号安全,请及时绑定邮箱和手机立即绑定

如何处理xml标签中的下划线

如何处理xml标签中的下划线

凤凰求蛊 2023-09-20 19:16:32
如何处理 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());

希望这有效!


查看完整回答
反对 回复 2023-09-20
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信