3

xml:

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

この xml を Java クラスの 2 つの異なるフィールドに非整列化する必要があります。

以下を試しましたが、うまくいきませんでした。最初のフィールドには正しい値があり、2 番目のフィールドには null がありました。

ジャバ:

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

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

両方の値を保持し、それを「要素」にマップするクラスを作成せずに、どうすればこれを達成できますか?

4

2 に答える 2

8

フィールドではなくセッターに注釈を付けてから、セッターに値を2つのフィールドに解析させることができます。

@XmlElement(name="element") 
void setElement(String value) {
    // parse value
    StringTokenizer st = new StringTokenizer(value, "()");
    this.one = st.nextToken().trim();
    this.two = st.nextToken().trim();
}
于 2011-07-19T12:21:24.387 に答える
0

アンマーチャリング システムはマーカー セパレーターのみを使用するため、これは悪い習慣だと思います。xml をアンマーチャリングした後、行を分割できます。

この xml 形式を使用しない理由:

<root><elements><element>value</element><element>something</element></elements></root>
于 2011-07-19T12:24:44.103 に答える