【发布时间】:2012-03-09 03:14:46
【问题描述】:
看起来 XStream (com.thoughtworks.xstream -> xstream 1.4.2) 正在以一种非常奇怪的方式处理元素和属性名称中的下划线。我需要从属性中带有下划线的客户那里获取并解析 xml。这是我第一次尝试使用 XStream,我有点失望,因为我希望避免所有丑陋的 xml 解析。
在这里,我提供了一个小测试样本来说明这种行为。最后一个例子说明了我的问题。
public class MyTest {
public void testIt() {
C1 a = new C1();
a.a_b= "a_b";
XStream xstream = new XStream();
xstream.processAnnotations(C1.class);
String xml = xstream.toXML(a);
Logger.info(xml);
C1 b = (C1) xstream.fromXML(xml);
Logger.info(b.a_b);
C1 c = (C1) xstream.fromXML("<C1 a_b=\"a_b\"/>");
Logger.info(c.a_b);
}
}
@XStreamAlias("C1")
class C1 {
@XStreamAsAttribute
String a_b;
}
这个输出
INFO: <C1 a__b="a_b"/>
INFO: a_b
INFO: null
现在我的问题 - 有没有办法让 XStream 理解单个下划线?
【问题讨论】: