[英]How to unmarshall only child elements using JAXB?
我只想使用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
自己解析DocumentBuilder
,然后例如使用XPath提取感興趣的節點,而不是讓JAXB解析文件。 然后,您可以使用Unmarshaller.unmarshal(Node node)分別對每個Node進行解組 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.