jdom去操作xml文件 解析XML
//jdom去操作xml文件/查询
package com.tsinghua;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
//import org.w3c.dom.NamedNodeMap;
import java.io.*;
import java.util.*;
public class TestJdomMjyEdit {
public static void main(String []args){
try {
//1. 创建一个SaxBuilder
SAXBuilder sax=new SAXBuilder();
//2. 指定去解析哪个文件
Document dm=sax.build(new FileInputStream("./mjy.xml"));
//3. 现在就可以解析了,得到根元素
Element root=dm.getRootElement();
//start 循环处理属性值 ,通用。不用管属性名称是什么
//4. 得到root下的第一层子元素
List l=root.getChildren();
System.out.println("size=="+l.size());
Element name1=null;
//得到第一个元素
for(int i=0;i<l.size();i++){
name1=(Element)l.get(i);
List<Attribute> list=name1.getAttributes();
for(Attribute attr : list){
System.out.println(attr.getName()+" 的属性值为: "+attr.getValue());
}
}
//end
//这种方法比较死板,必须需要知道属性名称,不过针对大型,复杂的XML不适用,故注释
//指定得到某个元素的属性值
// String name2=name1.getAttributeValue("name");
// System.out.println("name="+name2);
// String name3=name1.getAttributeValue("value");
// System.out.println("value="+name3);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
XML:
<?xml version="1.0" encoding="gb2312"?>
<states>
<state name='mjy1' value='mjy2'/>
</states>