当前位置: 首页 > 面试题库 >

如何在Jaxb中忽略XML中的一些标签

罗建弼
2023-03-14
问题内容

我的xml文件如下:

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

我想忽略<ignoreTag>,我想<CashLess>在我的Unmarshaller流程中添加标签。

我的班级如下:

@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元素

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

如果ignoreTag是分组元素

如果相反ignoreTag是集合的分组元素,则可以将其映射为:

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


 类似资料:
  • 问题内容: 我收到一个XML响应,并且它一直在频繁更改(节点不断增加或减少)。在响应xml中的每次更新之后,由于映射的Java类没有所有文件,所以我的代码中断了。 如果响应XML中发生任何更改,是否有任何方法可以避免我的代码中断。 任何帮助将不胜感激。 谢谢。 问题答案: 要处理未知字段,可以添加带注释的属性 输入中与类的显式属性不对应的任何元素都将被扫入此列表。如果该元素是已知的,则将得到未编组

  • 我得到了一个XML响应,它经常变化(节点不断增加或减少)。在响应xml的每次更新之后,我的代码会中断,因为映射的Java类没有所有的文件。 谢了。

  • 问题内容: 我收到此错误,因为其中一位用户在他的帖子中添加了 错误:[$ sanitize:badparse]清理程序无法解析以下html块:<3 我写的代码 我想他要采取仅标签和标签 那可能吗? 谢谢! 问题答案: 您可以创建过滤器,以清理HTML。 我在其中使用了strip_tags函数 http://phpjs.org/functions/strip_tags/ 控制器: 视图: http:

  • 问题内容: 我目前使用如下所示的XML 我所坚持的是,在使用XStream时,我需要能够忽略出现的某些标签(在“ FavOS”上方的情况下),这些标签可能未知或将来会更改。有没有办法忽略所有与当前实现的不匹配的标签? (使用XStream 1.3.1) 问题答案: 由于我花了超过15分钟的时间才能找到此答案,因此我认为应该发布它。 这似乎会跳过不在您的对象中的xml项。

  • 问题内容: 我有这样的XML消息: 我想将被测试方法产生的这种类型的消息与预期的消息进行比较,但我不在乎。因此,我希望以上消息被认为等于: 我正在使用XMLUnit的最新版本。 我在想答案是创建一个习惯。如果有准备好要使用的东西,我只是不想重新发明轮子。 欢迎使用XMLUnit以外的库的建议。 问题答案: 自从回答了这个问题以来,XMLUnit发生了很多变化。 现在,您可以在使用时轻松忽略节​​点

  • 问题内容: 如标题中所述,我想忽略文档中元素名称的大小写。 我尝试使用Blaise Doughan发布的代码: 这实际上是行不通的。 对于此XML: 问题答案: 您可以将所有属性映射到小写的节点名称,然后包装XMLStreamReader以对其返回的所有属性/元素名称调用toLowerCase()。然后从该XMLStreamReader解组。 我最近为此问题添加了对EclipseLink JAXB