Java xml中的子节点名称

Java xml中的子节点名称,java,xml,Java,Xml,我正在尝试编写一段代码,可以解析任何xml并打印其内容。我正在使用DOM解析器。我能够获取xml根标记的名称,但无法获取直接子级的标记名称。如果使用“getElementsByTagName”方法知道节点名称,则可以轻松完成此操作。有没有办法摆脱这个困境 我的代码是这样的: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder()

我正在尝试编写一段代码,可以解析任何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());
  }
}
NodeList nodes=doc.getDocumentElement().getChildNodes();
对于(int i=0;i
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());
  }
}
NodeList nodes=doc.getDocumentElement().getChildNodes();
对于(int i=0;i
也许这已经改变了,但不应该是:nodes.item(i)@Andreas\u D!我在NodeList API中发现了两个方法。你可以看到。关键是方法
nodes.get(i)未在
节点列表中定义。这可能已更改,但不应该是:nodes.item(i)@Andreas\D!我在NodeList API中发现了两个方法。你可以看到。关键是方法
nodes.get(i)未在
节点列表中定义。