Я создал простой xml-файл здесь:
http://roberthan.host56.com/productsNew.xml
, что довольно просто, корневым узлом является [products], в то время как все остальные узлы-элементы - [product].Под каждым узлом [product] есть два дочерних узла, [code] и [name], поэтому в основном это выглядит так:
[product]
[code]ddd[/code]
[name]ssss[/name]
[/product]
Я также написал следующий код Java для анализа этого XMLфайл и вынуть текстовое содержимое узла [product] и добавить его в JComboBox.
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());
}
Код довольно прост, сначала я анализирую xml и получаю все узлы продукта и помещаю ихв список узлов, а productList является arrayList.Я перебираю все узлы [product] для каждого из них, если у него есть дочерние узлы, затем я беру второй дочерний узел (который является узлом [name]) и помещаю его текстовое содержимое в список массивов,и, наконец, я перебираю arrayList и добавляю каждый элемент в поле со списком.
Проблема, которую я получил, заключается в том, что если я выберу дочерний узел [code], что означает «Node nameNode = nl.item (1) ", это будет отлично работать;однако, если я изменю этот элемент (1) на элемент (2) для извлечения всех узлов [name], в выпадающем списке будет раскрывающийся список, но все элементы будут пустыми, как будто я вставил 10 пустых строк.
Кроме того, если я попытаюсь добавить строку «Hello World» в поле со списком после вышеуказанного кода, элемент «Hello World» появится после 10 пустых элементов.
Я потратилвесь день отладки, но все еще без прорывов, XML на самом деле довольно прост, а Java также проста.Может ли кто-нибудь поделиться со мной своими мыслями по этому поводу, пожалуйста.Большое спасибо!