2017-03-05 49 views
0

我需要使用JAXB從xml讀取k元素,但找不到解決方案。有人有想法嗎?我的XML文件是這樣的:使用JAXB從xml中的列表中讀取k元素使用JAXB

<supplier> 
    <material> 
     <materialId>0-MAT-1-LIC</materialId> 
     <name>Material 1</name> 
     <quantity>100</quantity> 
    </material> 
    <material> 
     <materialId>1-MAT-1-LIC</materialId> 
     <name>Material 2</name> 
     <quantity>123</quantity> 
    </material> 
    <material> 
     <materialId>3-MAT-1-LIC</materialId> 
     <name>Material 3</name> 
     <quantity>1343</quantity> 
    </material> 
    <material> 
     <materialId>4-MAT-1-LIC</materialId> 
     <name>Material 4</name> 
     <quantity>1323</quantity> 
    </material> 
    <material> 
     <materialId>5-MAT-1-LIC</materialId> 
     <name>Material 5</name> 
     <quantity>1234</quantity> 
    </material> 
    <material> 
     <materialId>6-MAT-1-LIC</materialId> 
     <name>Material 6</name> 
     <quantity>12</quantity> 
    </material> 
</supplier> 

我可以將XML映射到Java對象,但我需要例如僅4元,而不是孔列表。先謝謝你!

+0

難道你只是遍歷材質對象列表並檢索第四個元素?我假設你已經有一個List 對象。 –

回答

1

如果您已經將xml映射到java對象,則應該有一個List材質。您可以在該列表上調用.get(index)。例如。如果你想得到第四個元素,並且列表的對象名稱是materialList,代碼將如下所示:materialList.get(3);索引3將爲您提供列表中的第四個元素。

但是,如果您只需要使用第4個元素,則不需要將整個xml轉換爲java對象。你可以使用xpath。給定樣本xml的Xpath獲取第四個材質將是(/supplier/material)[4]

+0

我不想在java中獲得整個列表。我有超過1000個條目進入xml,所以它會效率低下。 – Maria

+0

我完全同意。爲此,您可以使用Xpath。更新了答案 –