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

最佳答案

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

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

10-10 19:05