Java 如何处理xml标记中的下划线
如何处理xml标记中的下划线。这是我正在使用的代码。它正在生成带有双下划线(“u u”)而不是单下划线(“uu”)的xml标记。谁能帮我克服这个问题 ConverterRoute.Java CamelConfig.java Test.java Source.txt 输出 File.xmlJava 如何处理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时在内部使用下划线来转义字符 请参阅常见
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());