0

我只想使用 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 and 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()

另一个问题是处理多个孩子。在解组单个子元素
时我将如何处理?child2.1.1 and child3.1.1

4

1 回答 1

1

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

于 2012-07-25T17:41:56.573 回答