2017-03-05 3 views
0

Ich muss das Element k aus XML mit JAXB lesen, aber ich kann keine Lösung finden. Hat jemand eine Idee? Meine XML-Datei sieht wie folgt aus:K-Element aus einer Liste in XML mit JAXB lesen

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

konnte ich die xml zu dem Java-Objekt abzubilden, aber ich muss zum Beispiel nur das vierte Element und nicht das Loch Liste. Vielen Dank im Voraus!

+0

Kannst du nicht einfach durch die Liste der Materialobjekte iterieren und das vierte Element abrufen? Ich nehme an, Sie haben bereits ein Objekt der Liste . –

Antwort

1

Wenn Sie das XML bereits einem Java-Objekt zugeordnet haben, sollten Sie einen List Material haben. Sie können einen .get(index) auf dieser Liste aufrufen. Z.B. Wenn Sie das 4. Element erhalten möchten und der Objektname für die Liste materialList lautet, lautet der Code wie folgt: materialList.get(3); Index 3 gibt Ihnen das vierte Element in der Liste.

Wenn Sie jedoch nur mit dem vierten Element arbeiten müssen, müssen Sie das gesamte XML nicht in ein Java-Objekt konvertieren. Sie können dafür Xpath verwenden. Xpath für das angegebene Beispiel xml, um das vierte Material zu holen, ist (/supplier/material)[4]

+0

Ich möchte nicht die gesamte Liste in Java erhalten. Ich habe mehr als 1000 Einträge in das XML, so dass es ineffizient wäre. – Maria

+0

stimme ich voll und ganz zu. Dafür können Sie Xpath verwenden. Die Antwort wurde aktualisiert –