我正在使用xstream解析XML,一切都很顺利……有一种情况,xstream似乎无法处理。
有一个名为"“的标签,但在不同的xml文件中,它可以包含文本节点或其他XML标签。
可以是这样的:
XML File 1:
<Spec> text Node Here </Spec>
XML File 2:
<Spec Id="1">
<Tag1>value</Tag1>
<Tag2>value</Tag2>
</Spec>在Spec类中,我有这样的代码...
@XStreamAlias("Spec")
@XStreamConverter(value = ToAttributedValueConverter.class, strings = { "spec" }) //when Text Node
public class Spec
{
String spec; // text Node
@XStreamAlias("Id")
@XStreamAsAttribute
String id;
@XStreamAlias("Tag1")
String tag1;
@XStreamAlias("Tag2")
String tag2;
// getter and setter...
}在XML文件1的情况下,它工作得很好,但是在XML文件2的情况下,字段"tag1“和"tag2”的值为空,字段"spec“的值如下:"\n\t\t”
如何处理这两个文件?提前感谢!
发布于 2013-05-22 14:09:22
是的,我已经解决了这个问题……但不是以一种好的方式。
将Spec类拆分为两个类:一个用于文本节点,另一个用于xml元素。
在解析不同的xml文件时,使用xstream.alias("Spec",Spec1.class);和xstream.alias("Spec",Spec2.class);来切换两种不同的格式。
https://stackoverflow.com/questions/16666320
复制相似问题