ich eine einfache xml-Datei habe zu lösen hier erstellt sind [Produkt]. Unter jedem [Produkt] Knoten gibt es zwei untergeordnete Knoten, [code] und [name], so sieht es im Grunde wie:Eine Frage, wie die Zeichenfolge Problem in Java
[product]
[code]ddd[/code]
[name]ssss[/name]
[/product]
ich auch den folgenden Java-Code geschrieben haben, auf diese XML-Datei zu analysieren und entferne den Textinhalt des Knotens [product] und füge ihn zu einer JComboBox hinzu.
docBuilder = docFactory.newDocumentBuilder();
doc = docBuilder.parse("http://roberthan.host56.com/productsNew.xml");
NodeList productNodes = doc.getElementsByTagName("product");
productlist.clear();
for (i = 0; i < productNodes.getLength(); i++)
{
Node childNode = productNodes.item(i);
if (childNode.hasChildNodes()) {
NodeList nl = childNode.getChildNodes();
Node nameNode = nl.item(2);
productlist.add(nameNode.getTextContent());
}
}
final JComboBox productComboB = new JComboBox();
Iterator iterator = productlist.iterator();
while(iterator.hasNext())
{
productComboB.addItem(iterator.next().toString());
}
Der Code ganz einfach ist, ich zunächst die XML parsen und alle Produkt Knoten erhalten und sie in eine Nodelist setzen, und das ist ein productArrayList. Ich durchlaufe alle [product] Knoten, für jedes von ihnen, wenn es Kind-Knoten hat, dann nehme ich den zweiten Kind-Knoten (welcher der [Name] -Knoten ist) und lege den Textinhalt davon in die Array-Liste, und schließlich durchlaufe ich die arrayList und füge jedes Element zum Kombinationsfeld hinzu.
Das Problem, das ich habe, ist, wenn ich den [code] Kind-Knoten, was bedeutet "Knoten nameNode = nl.item (1)", wird es perfekt funktionieren; Wenn ich jedoch dieses Element (1) zu Element (2) ändere, um alle [Name] -Knoten zu extrahieren, wird das Kombinationsfeld eine Dropdown-Liste haben, aber alle Elemente sind leer, so wie ich 10 leere Zeichenfolgen eingefügt habe.
Auch wenn ich versuche, eine "Hello World" Zeichenfolge in das Kombinationsfeld nach dem obigen Code hinzuzufügen, wird der "Hello World" Artikel nach den 10 leeren Elementen angezeigt.
Ich habe den ganzen Nachmittag damit verbracht, das zu debuggen, aber immer noch keinen Durchbruch, das XML ist eigentlich ziemlich einfach und das Java ist auch einfach. Könnte jemand bitte ein paar Gedanken mit mir teilen? Danke vielmals!
Ihre beste Wette ist einige Debug zu tun, um zu versuchen, die Region in Ihrem Code zu isolieren verursacht der Fehler, dann, wenn eine Lösung nicht herausfällt, post ein kleines kompilierbares lauffähiges Programm, das das Problem zeigt. –
Haben Sie auch überlegt, mit XPath aus Ihrem Dokument zu extrahieren? –
@Hovercraft Ich habe, aber diese Funktion muss in Java getan werden, könnten Sie eine Möglichkeit für mich vorschlagen, XPath zu Java-Klassen zu integrieren? – Kevin