Hashmap - einzelner Schlüssel mehrere Werte - Wie abrufen?
Rufe ich einen service, und ich bekomme die XML-Antwort in das unten format.
Wie Kriege ich mehrere Werte unter einem einzigen Schlüssel von dieser Antwort?
Ich möchte alle Werte in einer List<String>
<p700:item xmlns:p700="http://abc.test.com">
<p700:key xsi:type="xsd:string">Key1</p700:key>
<p700:value xsi:type="xsd:string">Value1</p700:value>
<p700:value xsi:type="xsd:string">Value2</p700:value>
<p700:value xsi:type="xsd:string">Value3</p700:value>
<p700:value xsi:type="xsd:string">Value14</p700:value>
</p700:item>
<p700:item xmlns:p700="http://abc.test.com">
<p700:key xsi:type="xsd:string">Key1</p700:key>
<p700:value xsi:type="xsd:string">Value1</p700:value>
<p700:value xsi:type="xsd:string">Value2</p700:value>
</p700:item>
- Erstellen Sie eine
Map<String,List<String>>
. - War das deine Abfrage mehr zum analysieren von solchen XML-Antwort? Wenn Sie webservice (codefirst), hätte man den vorgegebenen Anfrage - /Antwort-Daten-Struktur, die als pojos.Ich denke, man sollte immer Liste von item-Objekten, aber das Parsen könnte etwas kniffliger als es Attribute hat.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Guave hat eine
Multimap
- Schnittstelle und eineListMultimap
Umsetzung, die sich eine Karte, der Schlüssel, um mehrere Werte in einer Liste enthalten Struktur (im Gegensatz zu einem set sortiert set). Es ist im wesentlichen eineMap<K, Collection<V>>
. Sie finden auch Beispiele,hier. Als für das Parsen von XML gibt es eine Reihe von Fragen über die hier auf JA, und starten Sie mit diese eine.Erstellen einer Karte
String
<->List<String>
:Diesen code verwenden, um das hinzufügen von Werten:
Können Sie Durchlaufen Sie die map und fügen Sie diese manuell zu einer Liste, wenn Sie nicht wollen, um die
Map<String, List<String>>
erwähnt in den Kommentaren unter deiner Frage.Dies ist natürlich davon ausgegangen, dass Sie bereits extrahiert die Daten aus der XLS in eine
Map<String, String>
. Wenn Sie noch nicht, das ist eine ganz andere Sache.Wenn Sie ein Paket benötigen, nehmen Sie Ihre XLS, sollten JXLS.