2011-07-19 29 views
2

XML:Jaxb - 我如何將一個xml元素解組到多個字段?

<root> <element>value (something)</element> </root>

我需要來解讀這個XML兩個不同的領域在我的Java類。

我嘗試了以下,但它沒有奏效。第一個字段有正確的值,第二個字段爲空。

的java:

@XmlElement(name="element") 
@XmlJavaTypeAdapter(TakeValueBeforeParentheses.class) 
private String one; 

@XmlElement(name="element") 
@XmlJavaTypeAdapter(TakeValueInParentheses.class) 
private String two; 

我怎樣才能做到這一點,而無需創建一個類來保存這兩個值和地圖,爲「元素」?

回答

7

您可以註釋setter方法,而不是字段,然後使二傳手解析值到兩個領域:

@XmlElement(name="element") 
void setElement(String value) { 
    // parse value 
    StringTokenizer st = new StringTokenizer(value, "()"); 
    this.one = st.nextToken().trim(); 
    this.two = st.nextToken().trim(); 
} 
+0

不完全解決我所期待的,但它工作得很好:) TY – Sam

0

我認爲這是一個不好的做法,因爲unmarchalling系統只標記分隔玩。您可以在清除xml之後拆分該行。

爲什麼不使用這種XML格式:

<root><elements><element>value</element><element>something</element></elements></root> 
+0

的XML側是不是我的控制之下。 – Sam

相關問題