XStream 和下划线

2024-04-04

看起来 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 理解单个下划线?


这对我有用:

XStream xs = new XStream(new DomDriver("UTF-8", new XmlFriendlyNameCoder("_-", "_")));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XStream 和下划线 的相关文章

随机推荐