一、递归遍历整个文档
1.创建Document对象
1.创建Document对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();// 创建文档构建器工厂
DocumentBuilder builder = factory.newDocumentBuilder(); // 通过工厂来获得文档构建器
Document doc = builder.parse(new File("example.xml")); //读取xml文件生成一个document对象
2.递归打印节点名称
public static void printNodeName(Node node,String line){
if(node instanceof Element){
System.out.println(line + node.getNodeName());
}
if(node.hasChildNodes()){
NodeList nl = node.getChildNodes();
for(int i =0;i<nl.getLength();i++){
printNodeName(nl.item(i),line+"\t");
}
}
}
3.完整事例
package xml;
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 ReadXml {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(ReadXml.class.getClassLoader().getResourceAsStream("config.xml"));
Node nodeList = document.getFirstChild();
printNodeName(nodeList,"");
}
public static void printNodeName(Node node,String line){
if(node instanceof Element){
System.out.println(line + node.getNodeName());
}
if(node.has