【问题标题】:JAXB - Ignore intermediate elementJAXB - 忽略中间元素
【发布时间】:2021-11-20 00:52:33
【问题描述】:

我能否以忽略未知中间元素的方式将 JAXB 结构映射到 XML 结构?

@XmlRootElement(name="foo")
public class Foo {
   @XmlElement(name="bar")
   Bar bar;
}

要匹配类似于 XML 的

<foo>
  <unknown>
    <bar/>
  </unknown>
</foo>

【问题讨论】:

  • 我认为JAXB 不可能自动忽略该元素。您可以使用JAXB Moxy 并使用@XmlPath("unknown/bar") 来避免创建额外的类,或者您可以尝试创建@XmlJavaTypeAdapter 并忽略它并仅获取内部值。

标签: xml jaxb mapping


【解决方案1】:

我做到了

  • 使用 javax.xml.parsers.DocumentBuilder 解析 XML String 得到根节点
  • 为标签名为“bar”的元素编写了 XML 树的广度优先搜索
  • 然后使用 javax.xml.bind.Unmarshaller 将该节点解组到我的 JAXB 对象中。

【讨论】:

    猜你喜欢
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2011-01-25
    • 2012-10-12
    • 2010-12-24
    • 1970-01-01
    相关资源
    最近更新 更多