2017-03-05 49 views
0

xmlからJAXBを使用してk要素を読み取る必要がありますが、解決策が見つかりません。誰かにアイデアはありますか?私のxmlファイルは次のようになります。JAXBを使用してxmlのリストからk要素を読み取る

<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> 

私は、JavaオブジェクトにXMLをマッピングすることができましたが、私は唯一の第四の要素ではなく穴リストたとえば必要があります。前もって感謝します!

+0

マテリアルオブジェクトのリストを反復して4番目の要素を取得できませんか?私はあなたがすでにリストオブジェクトを持っていると仮定します。 –

答えて

1

既にxmlをJavaオブジェクトにマップしている場合は、Listの素材が必要です。そのリストで.get(index)を呼び出すことができます。例えば。 4番目の要素を取得したい場合、リストのオブジェクト名がmaterialListの場合、コードは次のようになります。materialList.get(3);インデックス3は、リストの4番目の要素を返します。

しかし、4番目の要素で作業する必要がある場合は、xml全体をJavaオブジェクトに変換する必要はありません。あなたはそのためにxpathを使うことができます。与えられたサンプルxmlが4番目のマテリアルを取得するためのXpath (/supplier/material)[4]

+0

私はjavaのリスト全体を取得したくありません。私はxmlに1000以上のエントリを持っているので、非効率です。 – Maria

+0

私は完全に同意します。そのためには、Xpathを使用することができます。回答を更新しました –

関連する問題