jdom是一个第三方开源项目 里面封装了一些操作XML的接口和方法,jdom很简单
首先下载一个jdom.jar,把它复制到项目的LIB下面
然后写一个测试类
ReadXml .java
package test.xml;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class ReadXml {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
@SuppressWarnings("unused")
SAXBuilder sax = new SAXBuilder();
try
{
@SuppressWarnings("unused")
Document dom=sax.build("test.xml");
@SuppressWarnings("unused")
Element el=dom.getRootElement(); //得到根节点
@SuppressWarnings("unused")
List list=el.getChildren();//得到el根元素下面所有的子元素
for(int i=0;i<list.size();i++)
{
Element ee=(Element) list.get(i);
System.out.println(ee.getName());//得到ee元素的名字
System.out.println(ee.getAttributeValue("身高"));//得到ee属性的值
System.out.println("----------");
System.out.println(ee.getValue());//得到ee节点下所有元素的值
if(ee.getChildText("小前锋").equals("1"))
{
System.out.println(ee.getChildText("火箭"));//得到ee节点下面元素是"火箭"的值
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
就会自动生成一个test.xml的文件
<?xml version="1.0" encoding="UTF-8"?>
<篮球>
<麦迪 身高="2.02">
<小前锋>1</小前锋>
<火箭>62分</火箭>
</麦迪>
<科比 身高="1.98">
<得分后卫>8</得分后卫>
<!--麦迪vs科比 no.1-->
<湖人>81分</湖人>
</科比>
</篮球>
下面代码是读取XML中的内容
package test.xml;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Comment;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class WriteXml {
public static void main(String[] args) {
@SuppressWarnings("unused")
Document dom = new Document();
Element students = new Element("篮球"); //根节点
Element s1 = new Element("麦迪");
Element s2 = new Element("科比");
Element n1 = new Element("小前锋");
Element n2 = new Element("得分后卫");
Element c1 = new Element("火箭");
Element c2 = new Element("湖人");
Comment cc = new Comment("麦迪vs科比 no.1"); //Comment类是注释
n1.setText("1"); //设置n1节点元素的值
n2.setText("8");
c1.setText("62分");
c2.setText("81分");
s1.setAttribute("身高", "2.02"); //在s1节点上面加入属性id,id的值是s01
s2.setAttribute("身高", "1.98");
s1.addContent(n1);
s1.addContent(c1);
s2.addContent(n2);
s2.addContent(cc);
s2.addContent(c2);
students.addContent(s1);//将s1节点添加到students根节点上
students.addContent(s2);
dom.addContent(students);//将根节点students添加到dom对象里面
XMLOutputter outputter = new XMLOutputter();
outputter.setFormat(Format.getPrettyFormat());//设置xml中的排版格式
try {
outputter.output(dom, new FileOutputStream("test.xml"));
} catch (IOException ex) {
ex.printStackTrace();
}
}
}