xml中的子节点名称

时间:2011-07-06 11:16:55

标签: java xml

我正在尝试编写一段可以解析任何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。

提前致谢。

1 个答案:

答案 0 :(得分:3)

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());
  }
}