2013-05-21 110 views
0

我正在使用xstream來解析XML,並且一切順利...... xstream似乎無法處理它。XStream元素包含TextNode和元素

有一個名爲「」的標籤,但是在不同的xml文件中,它可以包含文本節點或其他XML標籤。

它可以是這樣的:

XML File 1: 
<Spec> text Node Here </Spec> 

XML File 2: 
<Spec Id="1"> 
    <Tag1>value</Tag1> 
    <Tag2>value</Tag2> 
</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」

我能做些什麼來處理這兩個文件? 在此先感謝!

回答

0

是的我已經解決了這個問題... 但不是一個好方法。

將Spec類拆分爲2個類: 一個用於文本節點,另一個用於xml元素。

並解析不同的xml文件時, 使用 xstream.alias(「Spec」,Spec1.class);和 xstream.alias(「Spec」,Spec2.class); 切換兩種不同的格式。

相關問題