Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理xml标记中的下划线_Java_Xml_Apache Camel_Bindy - Fatal编程技术网

Java 如何处理xml标记中的下划线

Java 如何处理xml标记中的下划线,java,xml,apache-camel,bindy,Java,Xml,Apache Camel,Bindy,如何处理xml标记中的下划线。这是我正在使用的代码。它正在生成带有双下划线(“u u”)而不是单下划线(“uu”)的xml标记。谁能帮我克服这个问题 ConverterRoute.Java CamelConfig.java Test.java Source.txt 输出 File.xml 55158 11901 2346 预期产出 File.xml 55158 11901 2346 您不能使用Xstream别名:例如,请参见Xstream在生成XML时在内部使用下划线来转义字符 请参阅常见

如何处理xml标记中的下划线。这是我正在使用的代码。它正在生成带有双下划线(“u u”)而不是单下划线(“uu”)的xml标记。谁能帮我克服这个问题

ConverterRoute.Java

CamelConfig.java

Test.java

Source.txt

输出

File.xml


55158
11901
2346
预期产出

File.xml


55158
11901
2346

您不能使用Xstream别名:例如,请参见

Xstream在生成XML时在内部使用下划线来转义字符

请参阅常见问题:

您可以尝试使用自定义驱动程序(而不是默认驱动程序):

或者,如果不起作用,可以尝试使用其他替代驱动程序:

DomDriver myCustomDriver = new DomDriver("UTF_8", new NoNameCoder());

希望这能奏效

当我使用Dom4JDriver时,它返回类not found异常,但当我尝试DomDriver时,我没有看到任何更改@塔奇德科科
@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();
        }
    }
}
@CsvRecord(separator = "\\|",skipField = true,name = "TEST_INB")
public class Test {

    @DataField(pos = 1,name = "ALT_NUM")
    private BigDecimal ALT_NUM;

    @DataField(pos = 2,name = "PRTNUM")
    private BigDecimal PRTNUM;

    @DataField(pos = 3,name = "UOMCOD")
    private Integer UOMCOD;

}
55158|11901|2346
55158|11101|3454
<?xml version='1.0' encoding='UTF-8'?>    
    <TEST__INB>
            <ALT__NUM>55158</ALT__NUM>
            <PRTNUM>11901</PRTNUM>
            <UOMCOD>2346</UOMCOD>
    </TEST__INB>
<?xml version='1.0' encoding='UTF-8'?>    
    <TEST_INB>
            <ALT_NUM>55158</ALT_NUM>
            <PRTNUM>11901</PRTNUM>
            <UOMCOD>2346</UOMCOD>
    </TEST_INB>
XmlFriendlyNameCoder nameCoder = new XmlFriendlyNameCoder("_-", "_");  
Dom4JDriver myCustomDriver = new Dom4JDriver(nameCoder);
... 
XStreamDataFormat xStreamDataFormat = new XStreamDataFormat();
xStreamDataFormat.setDriver(myCustomDriver);
DomDriver myCustomDriver = new DomDriver("UTF_8", new NoNameCoder());