如何在Jaxb中忽略XML中的一些标记 [英] How to ignore some tags in XML in Jaxb

查看:106
本文介绍了如何在Jaxb中忽略XML中的一些标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的xml文件如下:

<ExternalCases>
    <ignoreTag>
        <CashLess>
            <caseType>CashLess</caseType>
            <claimNo>9</claimNo>
            <status>Open</status>
        </CashLess>
    </ignoreTag>
</ExternalCases>

我想忽略< ignoreTag> 我想在我的Unmarshaller进程中使用< CashLess> 标记。

i want to ignore <ignoreTag> and i want <CashLess> tag in my Unmarshaller process.

我的课程如下:

@XmlRootElement(name="ExternalCases")
public class ExternalCases {

    List<CashLess> cashLess;

    @XmlElement(name="CashLess", required=false)
    public List<CashLess> getCashLess() {
        return cashLess;
    }
    public void setCashLess(List<CashLess> cashLess) {
        this.cashLess = cashLess;
    }
}

谢谢。

推荐答案

忽略 ignoreTag



你可以创建一个StAX过滤 XMLStreamReader 并让JAXB解组以忽略一个或多个XML元素。

Ignoring ignoreTag

You could create a StAX filtered XMLStreamReader and have JAXB unmarshal that to ignore one or more XML elements.

  • http://docs.oracle.com/javase/7/docs/api/javax/xml/stream/XMLInputFactory.html#createFilteredReader%28javax.xml.stream.XMLStreamReader,%20javax.xml.stream.StreamFilter%29

以下是我在答案中给出的完整示例的链接类似的问题:

Below is a link to a full example I gave in an answer to a similar question:

  • JAXB filtered parsing

如果改为 ignoreTag 是集合的分组元素然后你可以把它映射为:

If instead ignoreTag is a grouping element for the collection then you could map it as:

@XmlElementWrapper(name="ignoreTag")
@XmlElement(name="CashLess", required=false)
public List<CashLess> getCashLess() {
    return cashLess;

这篇关于如何在Jaxb中忽略XML中的一些标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆