Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 XStream元素包含TextNode和元素_Java_Element_Xstream_Textnode - Fatal编程技术网

Java XStream元素包含TextNode和元素

Java XStream元素包含TextNode和元素,java,element,xstream,textnode,Java,Element,Xstream,Textnode,我正在使用xstream解析XML,一切都很顺利,而。。。。 有一种情况xstream似乎无法处理 有一个名为“”的标记,但在不同的xml文件中,它可以包含文本节点或其他xml标记 它可以是这样的: XML File 1: <Spec> text Node Here </Spec> XML File 2: <Spec Id="1"> <Tag1>value</Tag1> <Tag2>value</Ta

我正在使用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>
对于XML文件1,它可以正常工作, 但对于XML文件2,字段“tag1”和“tag2”的值为空, 字段“spec”的值类似于:“\n\t\t”

如何处理这两个文件?
提前谢谢

是的,我已经解决了这个问题。。。 但不是以一种好的方式

将等级库类拆分为2个类: 一个用于文本节点,另一个用于xml元素

在解析不同的xml文件时, 使用 别名(“Spec”,Spec1.class);和 别名(“Spec”,Spec2.class); 切换两种不同的格式

@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...
}