有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jaxb如何将一个xml元素解组到多个字段?

xml:

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

我需要将此xml解组到java类中的两个不同字段

我尝试了以下方法,但没有成功。第一个字段的值正确,第二个字段为空

爪哇:

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

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

在不创建一个类来保存值并将其映射到“元素”的情况下,如何实现这一点


共 (2) 个答案

  1. # 1 楼答案

    您可以对setter和not字段进行注释,然后让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();
    }
    
  2. # 2 楼答案

    我认为这是一种不好的做法,因为取消标记系统只使用标记分隔符。可以在取消对xml的映射后拆分行

    为什么不使用这种xml格式:

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