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>