需要解析的XML文件如图:
下面是具体的解析代码,要捕获异常。。。
/*
* DOM解析方式
* */
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
//路径为相对路径,因为XML文件在工程目录下面
Document document = builder.parse(new File("country.xml"));
//获取根节点,并且读取其属性
Element root = document.getDocumentElement();
System.out.println("root's id = "+root.getAttribute("cat"));
//获取指定名称的所有子节点
NodeList list = root.getElementsByTagName("province");
for (int i = 0; i < list.getLength(); i++) {
//进行一次强转,因为Element继承自Node
Element lan = (Element) list.item(i);
System.out.println("--------------------");
System.out.println(" id = "+lan.getAttribute("id"));
//获取所有的子节点
NodeList clist = lan.getChildNodes();
for (int j = 0; j < clist.getLength(); j++) {
Node c = clist.item(j);
//由于XML文件中的空格也会解析,所以要事先进行判断
if(c instanceof Element){
//输出节点名称和节点内容
System.out.println(c.getNodeName()+" = "+c.getTextContent());
}
}
}
输出的结果如图: