<?xml version="1.0" encoding="UTF-8"?>
<students>
<!-- 第一个学生数据 -->
<student id="s1">
<name>张三</name>
<sex>男</sex>
</student>
<student id="s2">
<name>李四</name>
<sex>女</sex>
</student>
</students>
以上是XML文件。
下面贴上Java解析代码
package com.ymw.test.xml;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;
public class Xml {
public static void main(String[] args) {
// 创建工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
// 创建识别器
DocumentBuilder builder = factory.newDocumentBuilder();
//解析xml文件
Document document= builder.parse("Test.xml");
//获取根节点
NodeList students= document.getElementsByTagName("students");
//循环元素名为students标签的根节点
for (int i = 0; i < students.getLength(); i++) {
Element element=(Element)students.item(i);
System.out.println(element.getNodeName());
//获取所有子元素
NodeList childNode=element.getChildNodes();
//循环students下面的子节点
for (int j = 0; j < childNode.getLength(); j++) {
//拿到每一个子节点
Node chelement=childNode.item(j);
//判断是否是元素节点
if(chelement.getNodeType()==Node.ELEMENT_NODE) {
System.out.println(chelement.getNodeName()+"年级:"+((Element)chelement).getAttribute("id"));
//获取所有子节点
NodeList lastNodes=chelement.getChildNodes();
for (int k = 0; k < lastNodes.getLength(); k++) {
Node lastNode=lastNodes.item(k);
if(lastNode.getNodeType()==Node.ELEMENT_NODE) {
System.out.println(lastNode.getNodeName()+"文本节点内容:"+lastNode.getTextContent());
}
}
}
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}