普通解析XML
//去处理一个关于学生的信息的xml文件
package com.tsinghua;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ReadMjyXml {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
//解析器工厂类,为创建一个解析器作准备)
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
//创建一个dom解析器
//他实现了解析和处理xml文件需要的全部dom方法
DocumentBuilder db=dbf.newDocumentBuilder();
//告诉解析器去解析哪个xml文件
Document dm=db.parse("./mjy.xml");
//如果把整个xml看作一个公司,那么NodeList就好像是一个部门
NodeList nl=dm.getElementsByTagName("state");
System.out.println("the length="+nl.getLength());
for(int i=0;i<nl.getLength();i++){
//element就像是部门中的一个职员
Element ele=(Element) nl.item(i);
//也可以遍历得到所有属性和它们的值
//就像该职员的相关属性
NamedNodeMap nnm=ele.getAttributes();
for(int j=0;j<nnm.getLength();j++){
Node node3=nnm.item(j);
System.out.println("名称为:"+node3.getNodeName());
System.out.println("值为:"+node3.getNodeValue());
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
XML:
<?xml version="1.0" encoding="gb2312"?>
<states>
<state name='mjy1' value='mjy2'/>
</states>