我正在尝试编写一段可以解析任何 xml 并打印其内容的代码。我正在使用 DOM 解析器。我能够获取 xml 根标签的名称,但无法获取直接子标签的名称。如果使用“getElementsByTagName”方法已知节点名称,则可以轻松完成此操作。有没有办法摆脱这个困境?
我的代码是这样的:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
doc.getDocumentElement().getNodeName() // this gets me the name of the root node.
现在如何获取直接子节点的名称,以便我可以使用 getElementsByTagName("x") 遍历 xml。
提前致谢。
最佳答案
getChildNodes()
返回元素的所有子元素。该列表将包含更多元素,因此您必须检查每个子节点是否是一个元素:
NodeList nodes = doc.getDocumentElement().getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.get(i);
if (node instanceof Element) {
Element childElement = (Element) node;
System.out.println("tag name: " + childElement.getTagName());
}
}
关于java - xml 中的子节点名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595512/