gpt4 book ai didi

java - 如何通过 XPaths 将 XML 映射到 Java 对象?

转载 作者:数据小太阳 更新时间:2023-10-29 02:21:07 24 4
gpt4 key购买 nike

给定 XML 示例:

<fooRoot>
<bar>
<lol>LOLOLOLOL</lol>
</bar>
<noob>
<boon>
<thisIsIt></thisIsIt>
</boon>
</noob>
</fooRoot>

应该映射到:

class MyFoo {
String lol;
String thisIsIt;
Object somethingUnrelated;
}

约束:

  • 不应转换 XML,它作为已解析的 org.w3c.dom.Document 对象提供。
  • 类不会也不会 1:1 映射到 XML。
  • 我只对将 XML 的特定路径映射到对象的特定字段感兴趣。

我梦想的解决方案是这样的:

@XmlMapped
class MyFoo {

@XmlElement("/fooRoot/bar/lol")
String lol;

@XmlElement("/noob/boon/thisIsIt")
String thisIsIt;

@XmlIgnore
Object somethingUnrelated;
}

是否存在类似的情况?我发现要么需要严格的 1:1 映射(例如 JMX、JAXB),要么需要对所有字段进行手动迭代(例如 SAX、Commons Digester。)

JiBX binding definitions来最近的什么我 lokking。但是,此工具用于编码/解码 Java 对象的完整层次结构。我只想在运行时将 XML 文档的一部分提取到现有的 Java bean 中。

最佳答案

注意:我是 EclipseLink JAXB (MOXy) 的领导和成员 JAXB 2 (JSR-222) 专家组。

您可以使用 MOXy 做到这一点:

@XmlRootElement(name="fooRoot")
class MyFoo {

@XmlPath("bar/lol/text()")
String lol;

@XmlElement("noob/boon/thisIsIt/text()")
String thisIsIt;

@XmlTransient
Object somethingUnrelated;
}

了解更多信息

关于java - 如何通过 XPaths 将 XML 映射到 Java 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com