jdom操作Xml示例
来源:互联网 发布:windows svn 命令行 编辑:程序博客网 时间:2024/05/20 01:07
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
import org.jdom.xpath.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import org.jdom.*;
/**
* 使用JDOM操作XML文件示例
* 步骤:
* 1、去www.jdom.org下载jdom 1.0,也只有这个版本,因为作为觉得简单的才是最好的,除非XML更改才会对程序更行更改
* 2、准备XML文件,将放在指定的目录下:
* <?xml version="1.0" encoding="UTF-8" ?>
<student>
<user>
<id>1</id>
<name>test_boy</name>
<age>23</age>
<sex>boy</sex>
</user>
<user>
<id>2</id>
<name>test_girl</name>
<age>20</age>
<sex>girl</sex>
</user>
</student>
× 3、将代码放进去,直接运行并查看结果,就OK了
*/
public class JDomTest
{
String xmlPath = "e://Mickey//test.xml";//原文件,必须存在
String xmlPath_out = "e://Mickey//test1.xml";//目标文件,可不存在
//建立SAXBuilder对象
SAXBuilder builder = new SAXBuilder();
//建立文档对象,也就是XML文件对象
Document document;
public JDomTest()
{
try
{
//用XMLBuilder对象建立即build一个文件输入流,成为该文档对象
document = builder.build(new FileInputStream(xmlPath));
}
catch (Exception e)
{
e.printStackTrace();
return;
}
}
public void delByID(String id)
{
}
public static void main(String[] args)
{
JDomTest jDomTest=new JDomTest();
//获得文档的根元素,这里就是获得"student"
Element root = jDomTest.document.getRootElement();
System.out.println("root element is:" + root);
XPath xPath;
//取得根原下面所有字根,将放于List集合中
try
{
//List l=XPath.selectNodes(root,"");
//System.out.println("查找结果:"+l.size());
//用这个XPath的时候,还不知道还要把JDom/lib下面全部的类导入
//还编辑了不少时间,这是JDom和其它的jar文件不一样的地方
XPath servletPath = XPath.newInstance("/student/user/id[text()='1']");//查找id=1的是不是存在
List l = servletPath.selectNodes(jDomTest.document);
System.out.println("查找结果:"+l.size());
for(int i=0;i<l.size();i++)
{
Element e=(Element)l.get(i);
String id=e.getText();
System.out.println("id:"+id);
}
}
catch (JDOMException e)
{
e.printStackTrace();
}
List list = root.getChildren();
for (int i = 0; i < list.size(); i++)
{
System.out.println("XXX");
StringBuffer buf = new StringBuffer();
//取得当前第i个元素,这里指的“二级根”
Element e = (Element) list.get(i);
Attribute attribute=new Attribute("Ok","yes");
e.setAttribute(attribute);
//取得对应的“二级根”面的对应的元素名
Element e_id = e.getChild("id");
//取得对应的值
String id = e_id.getText();
Element e_name = e.getChild("name");
String name = e_name.getText();
Element e_age = e.getChild("age");
String age = e_age.getText();
Element e_sex = e.getChild("sex");
String sex = e_sex.getText();
//增加一个major项
Element e_add=new Element("major");
//赋值
e_add.setText("Computer");
//加到“二级根”下
e.addContent(e_add);
buf.append("id:" + id).append(" name:" + name).append(" age:" +
age).append(" sex:" +
sex);
System.out.println(buf);
//这里删除一个Content后,此时将不再进行第二个循环,运行完该循环的最后一条语句直接通出
root.removeContent(e);
System.out.println("XXX");
}
//增加一个“二级根”,并赋值
Element oneChild=new Element("user");
//增加一个属性
Attribute a=new Attribute("ComeFrom","BeiJing");
oneChild.setAttribute(a);
root.addContent(oneChild);
Element e_id = new Element("id");
e_id.setText("3");
//取得对应的值
Element e_name = new Element("name");
e_name.setText("temp");
Element e_age = new Element("age");
e_age.setText("30");
Element e_sex = new Element("sex");
e_sex.setText("girl");
oneChild.addContent(e_id);
oneChild.addContent(e_name);
oneChild.addContent(e_age);
oneChild.addContent(e_sex);
//输入出当前读入的XML文件到另一个文件中
XMLOutputter out = new XMLOutputter();
try
{
//建立文件输出流,将读入的文件,定到目标文件中去
out.output(jDomTest.document, new FileOutputStream(jDomTest.xmlPath_out));
}
catch (Exception e)
{
e.printStackTrace();
}
System.exit(0);
}
}
- jdom操作Xml示例
- JDOM操作XML简单示例
- (Step 3)JDOM操作XML之(Sonnet示例)
- JDOM操作XML例
- JDOM操作XML文件
- JDOM操作XML文件
- JDOM操作XML文件
- JDOM操作XML文件
- JDOM操作XML文件
- 使用JDom操作XML
- jdom操作xml
- JDOM操作XML
- JDOM操作XML
- jdom操作xml
- jdom操作xml文件
- JDOM 操作XML
- Jdom 操作XML
- JDOM、Dom4j操作XML
- 类的静态(数据)成员(函数)
- 用域名在自己机子上部署web应用,可通过外网访问
- 模拟spring的注入和读取配置文件(ApplicationContext.xml)
- 分布式版本控制系统[Mercurial]安装
- 第一个EJB程序
- jdom操作Xml示例
- JavaScript学习总结_二.数据类型
- 【转】linux2.6.28-tty设备驱动学习
- 选择排序
- 一个外企白领的日记
- 16个经典面试问题回答思路
- POJ 1877
- java基础题收藏
- 在fedora linux 15下无法用root用户登陆解决方法