gpt4 book ai didi

java - 如何使用 JAXB 仅解码子元素?

转载 作者:行者123 更新时间:2023-12-01 15:15:35 24 4
gpt4 key购买 nike

我只想使用 JaxB 解码大型 XML 的几个子级。 XML 结构是这样的:

<root>
<child1>
<child1.1>
<child1.1.1/>
<child2.1.1/>
<child2.1.1/>
<child3.1.1/>
<child3.1.1/>
</child1.1>
</child1>
</root>

这里我想解码到child1.1.1、child2.1.1和child3.1.1。我不想创建根元素的 java 类,只想编码子元素。
现在我正在解码根元素并从中获取子对象。

JAXBContext jc = JAXBContextFactory.createContext(new Class[] {RootType.class}, null);
Unmarshaller unmarshaller = jc.createUnmarshaller();
File xml = new File("D:/Projects/test.xml");
RootType root = (RootType)unmarshaller.unmarshal(xml);
Child1.1.1[] child1.1.1 = root.getChild1().getChild1.1[0].getChild1.1.1()

另一个问题是处理多个 child 。
在解码各个子元素时,我将如何处理 child2.1.1 和 child3.1.1

最佳答案

您可以使用 DocumentBuilder 自行解析文件,然后提取您感兴趣的节点(例如使用 XPath),而不是让 JAXB 解析文件。然后您可以使用 Unmarshaller.unmarshal(Node node) 单独解码每个节点.

关于java - 如何使用 JAXB 仅解码子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11652893/

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