代码之家  ›  专栏  ›  技术社区  ›  hese

使用JAXB取消处理棘手的CDATA元素

  •  1
  • hese  · 技术社区  · 12 年前

    我想使用JAXB将以下内容分解为一个“Tag”对象。这就是客户将结果传递给我的方式-

    <Tag type="a">
        <![CDATA[html text here]]>
    </Tag>
    

    请注意,CDATA直接包装在具有属性“type”的“Tag”中。

    我的课如下:

    @XmlRootElement(name = "Tag")
    public class Tag {
    
    private String type;
    private String tag;
    
    public String getTag() {
        return tag;
    }
    
    @XmlCDATA
    public void setTag(String tag) {
        this.tag = tag;
    }
    
    public String getType() {
        return type;
    }
    
    @XmlAttribute
    public void setType(String type) {
        this.type = type;
    }
    
    }
    

    我认为这不是正确的方式,正如预期的那样,当我解组时,Tag对象填充有“type”,但CDATA值没有填充到“Tag”中。

    知道吗?

    1 回复  |  直到 12 年前
        1
  •  1
  •   bdoughan    12 年前

    您可以添加 @XmlValue 标记属性的注释。