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

如何处理 xml 标签中的下划线。这是我正在工作的代码。它为我生成带有双下划线(“__”)而不是单下划线(“_”)的 xml 标记。谁能帮助我克服这个问题。


ConverterRoute.Java


public 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


@Component

public 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();

        }

    }

}


凤凰求蛊
浏览 115回答 1
1回答

胡说叔叔

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());希望这有效!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java