Java Dom解析xml
//第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码.
<?xml version="1.0" encoding="UTF-8"?>
//下一行描述文档的根元素:<PeopleList>开始
<PeopleList>
//PeoList的子元素,People,拥有一个属性,id
<People id="1">
//Name和Age都是People的子元素
<Name en='zhangsan'>张三</Name>
<Age>20</Age>
</People>
<People id="2">
<Name en='lisi'>李四</Name>
<Age>30</Age>
</People>
</PeopleList>
//节点:XML文档中的所有节点组成了一个文档树(或节点树)。XML文档中的每个元素、属性、文本等都代表着树中的一个节点。
//元素节点(Element),XML标记元素,即标签<PeopleList>...</PeopleList>
<People>... </People> <Name>...</Name> <Age>...</Age>
//属性节点(Attribute),XML标记元素的属性,d="2" en='zhangsan'
//文本节点(Text),包括在XML标记中的文本段,张三,20
//文档类型节点(DocumentType),文档类型声明,﹤!DOCTYPE…﹥
//注释节点Comment,XMLComment类注释节点,<!-- This is a comment -->
//后俩基本用不上
public class DomXML{
File file = new File("");
// (1)建立DocumentBuilderfactory ,用于取得DocumentBuilder
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// (2)通过DocumentBuilderfactory取得DocumentBuilder
DocumentBuilder builder = null;
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
// (3)定义Document接口对象,通过DocumenBuilder类进行DOM树转换操作
Document doc = null;
try {
doc = builder.parse("C:\\javatest\\bookstore.xml");
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//找到根节点
Element root = document.getDocumentElement();
NodeList peopleNodes = root.getElementsByTagName("People");
List<Integer> idList = new ArrayList<Integer>();
for(int i=0;i<peopleNodes.getLength();i++){
//获得每个People节点
Element peopleElement = (Element) peopleNodes.item(i);
idList.add(peopleElement.getAttribute("id"));
//获得这个People节点的子节点
NodeList childPeopleNodes = peopleElement.getChildNodes();
for(int j=0;j<childPeopleNodes.getLength();j++){
//DOM解析时候注意子节点前面的空格也会被解析
if(childPeopleNodes.item(j) instanceof Element){
Element childPeopleElement = (Element) childPeopleNodes.item(j);
if(childPeopleElement.getNodeType()==Node.ELEMENT_NODE){
if(childPeopleElement.getNodeName().equals("Name")){
}
else if(childPeopleElement.getNodeName().equals("Age")){
}
}
}
}
peopleList.add(people);
}
}