1.使用基于树的思想的Dom, JDom,Dom4J
下载JDom4J,然后在myeclipse的window->perference->java->buildpath->user libraries->添加用户库
1.1解析xml文件
public static void parseXML()//解析XML文件
{
SAXReader parser=new SAXReader(); //获取解析对象
try{
Document doc=parser.read(new File(文件路径));//获取和输出根元素
Element root = dec.getRootElement();//获取根元素对象
String rootName=root.getName();//获取根元素对象名称
List<Element> list=root.elements();//获取根元素下的儿子对象
for (Element e:list)//遍历根下的儿子对象
{
String eName=e.getName();//获取儿子对象的名称
List<Attribute> atts=e.attributes();//获取当前儿子对象的属性对象
for(Attribute att:atts)//遍历儿子对象的属性
{
String attName=att.getName();//获取属性名称
String attValue=att.getValue();//获取属性值
}
Iterator<Element> iter=e.elementIterator();//获取孙子对象
while(iter.hasNext)//遍历孙子对象
{
Element child=iter.next();
String childName=child.getName();//获取孙子对象名称
String childText=child.getText();//获取孙子元素内容
}
}
}catch(Exception e){
e.printStackTrace();
}
}
如果提前已知XML文件内容,可以用先验信息获取
SAXReader parser=new SAXReader(); //获取解析对象
Document doc=parser.read(new File(文件路径));//获取和输出根元素
Element root = dec.getRootElement();//获取根元素对象
Element e1=root.element(儿子对象的名称);
Attribute att= e1.attribute(属性名称);
Element e21=el.element(孙子对象名称)
也可以使用Dom4J创建XML文件
Dom4J是先将XML文件的DOM树形结构读取到内存里,然后解析。
2.Sax类库
该类库使用事件驱动
startDoucument事件:在开始解析XML文档时发生
startElement事件:在开始解析XML文档的开始元素标记时发生
characters事件:在开始解析XML文档的开始元素和结束元素标记间的内容时发生
endElement事件:在开始解析XML文档的结束元素标记时发生
endDoucument事件:在结束解析XML文档时发生