Я не понимаю, как получить дочерний узел, анализирующий XML-файл с помощью java. Например, у меня есть этот код:
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Parser {
public static void main(String args[]) {
try{
File stocks = new File("Stocks.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(stocks);
doc.getDocumentElement().normalize();
NodeList nodes = doc.getElementsByTagName("stock");
Node nodez = nodes.item(1);
String s = nodez.getFirstChild().getNodeName(); //outputs #text?
System.out.println(s);
//If I try this
String s = nodez.getNodeName(); //outputs 'stock'
} catch (Exception e) {
e.printStackTrace();
}
}
}
Поэтому, если я попытаюсь вывести имя текущего узла, он выведется правильно, но если я попытаюсь вывести имя следующего дочернего узла, он просто выведет #text. Как я могу правильно вывести любой узел, который захочу? Я думал, что могу просто использовать метод как getFirstChild
или getNextSibling
, но, похоже, я делаю что-то не так?
Вы можете найти файл xml, используя эту ссылку:
http://javarevisited.blogspot.com/2011/12/parse-xml-file-in-java-example-tutorial.html