Der
php-Editor Strawberry zeigt Ihnen, wie Sie DOM verwenden, um Daten aus XML-Dokumenten in Java abzurufen. DOM (Document Object Model) ist eine Standardmethode zur Verarbeitung von XML-Dokumenten. Durch die Manipulation der XML-Baumstruktur können wir leicht Informationen wie Knoten, Elemente und Attribute erhalten. In Java können wir den DOM-Parser nutzen, um XML-Dokumente zu lesen und die erforderlichen Daten zu extrahieren. Anschließend können wir die Knoten des XML-Dokuments durchlaufen und die Daten extrahieren, die wir für flexible und effiziente Datenerfassungsvorgänge benötigen.
Ich versuche, eine XML-Datei mit dom zu analysieren, gebe am Ende jedoch mehrmals (in einer Schleife) nur den letzten Eintrag aus. Bitte sagen Sie mir, gibt es ein Problem? (Ich bin ein Anfänger in Java)
xml enthält ungefähr den folgenden Inhalt:
<channel> <title>www.google.com</title> <item> <title>www.youtube.com</title> </item> <item> <title>play.google.com</title> </item> ... </channel>
Java-Code:
Node item = null; NodeList channelList = document.getElementsByTagName("channel"); for (int i = 0; i < channelList.getLength(); i++){ if (channelList.item(i).getNodeType() == Node.ELEMENT_NODE){ NodeList channelListChild = channelList.item(i).getChildNodes(); for (int j = 0; j < channelListChild.getLength(); j++){ if (channelListChild.item(j).getNodeType() == Node.ELEMENT_NODE){ switch (channelListChild.item(j).getNodeName()){ case "title":{ String title = channelListChild.item(j).getTextContent(); System.out.println(title); break; } case "item":{ item = channelListChild.item(j); break; } } } } } } if (item == null){ return; } String title = null; NodeList itemList = item.getChildNodes(); for (int i = 0; i < itemList.getLength(); i++){ if (itemList.item(i).getNodeType() == Node.ELEMENT_NODE){ switch (itemList.item(i).getNodeName()){ case "title":{ title = itemList.item(i).getTextContent(); break; } } } System.out.println(title); }
Sie weisen der Reihe nach die Variable „item“ jedem Element in der Schleife zu, sodass ihr Wert beim Verlassen das letzte item
angetroffene Element ist.
Sie sind nicht der Einzige, der Java und Dom in solchen Anwendungen verwendet; es ist eine beliebte Kombination. Aber es ist fast 25 Jahre alt und es gibt viele bessere Optionen. Auch wenn es Java sein muss, gibt es andere APIs wie jdom2 und xom, die benutzerfreundlicher sind.
Saxons Baumnavigations-API (inspiriert von Linq in der C#-Welt) sieht so aus:
XdmNode channel = document.getOutermostElement(); String title = channel.select(child("title")).asString(); System.out.println(title); channel.select(child("item")).forEach(item -> { String subtitle = item.select("title").asString(); System.out.println(subtitle); }
Dies ist ein Bruchteil der entsprechenden Länge des Dom-Codes.
[Haftungsausschluss: Saxon ist das Produkt unseres Unternehmens]
Das obige ist der detaillierte Inhalt vonRufen Sie Daten aus einem XML-Dokument mithilfe von DOM in Java ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!