当前位置: 首页 > 知识库问答 >
问题:

JAXB忽略响应XML中的“额外”元素

董飞
2023-03-14

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

谢了。

共有1个答案

沈成天
2023-03-14

使用jaxb.unmarshal()从XML创建Java对象。

默认情况下,它是非常自由的。

引用Javadoc:

    null
<p hi="Yo">
    <y>123</y>
    <peach>weor</peach>
</p>
String s = "<p hi=\"Yo\"><y>123</y><peach>weor</peach></p>";
Point p = JAXB.unmarshal(new StringReader(s), Point.class);
System.out.println(p); // Prints "java.awt.Point[x=0,y=123]"

我们告诉jaxb.unmarshal()解析java.awt.point实例。输入XML包含一个元素 ,该元素可以与point.y匹配,因此分析了一个int并将其设置为point.y。未找到point.x的XML数据,因此未触及该数据。属性hi和XML元素 不匹配,因此它们不用于任何东西。

我们在这里绝对没有异常,并且尽可能地将其解析并从XML转移到Java。

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

  • 我是新手,当我使用morphia java mongodb时,我有一个问题。我有“新闻”数据库在mongodb中的收藏是“文章”的一个例子: 在不丢失数据的情况下更新集合的最快方法是什么?如何在将这个文章类映射到MongoDB时忽略额外的字段? 谢谢

  • 问题内容: 我的xml文件如下: 我想忽略,我想在我的Unmarshaller流程中添加标签。 我的班级如下: 谢谢。 问题答案: 忽略 您可以创建一个经过过滤的StAX,并让JAXB取消编组以忽略一个或多个XML元素。 http://docs.oracle.com/javase/7/docs/api/javax/xml/stream/XMLInputFactory.html#createFilt

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

  • 对象使用JAXBContext创建的封送器进行封送。生成的xml将变成: 类Hi是从不能更改的xsd生成的。我的问题是,如果“hello”为null,有没有一种方法可以让封送器忽略nillable参数,并且不向xml输出任何内容?

  • 我最近下载了Gridly wordpress主题(响应),并使用css媒体查询调整不同宽度的布局-1020px、610px、480px、320px。 在这里看到我的页面。 当我将窗口从1020px最小化到610px,从610px最小化到480px时,网格将平滑地重新排列。当我从480px切换到320px时,“问题”就出现了,因为在弹出的特色图片缩略图下面似乎有一个额外的空间,这导致了一个帖子图片和