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