簡體   English   中英

如何使用JAXB解組僅子元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM