java读写xml

package com.test;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
public class MyJDom {
public static void main(String[] args) throws Exception{
SAXBuilder sb=new SAXBuilder();//建立构造器
Document doc=sb.build(new FileInputStream("src/xml/abc.xml"));//读入指定文件
Element root=doc.getRootElement();//获得根节点
List list=root.getChildren();//将根节点下的所有子节点放入List中
for(int i=0;i<list.size();i++) {
System.out.println("---------------------------");
Element item=(Element)list.get(i);//取得节点实例
String id=item.getAttribute("id").getValue();//取得属性值
System.out.println("id-->"+id);

Element sub=item.getChild("title");//取得当前节点的字节点
String text=sub.getText();//取得当前节点的值
System.out.println("Title-->"+text);
if(item.getChild("content").getChildren().size()>0){
Element sub2=item.getChild("content").getChild("name");
String text2=sub2.getText();
System.out.println("name-->"+text2);
}


Element sub3=item.getChild("email");
String text3=sub3.getText();
System.out.println("Email-->"+text3);
}
}
}
附:要读取的xml文件如下:abc.xml

<?xml version="1.0" encoding="gb2312"?>
<messages>
<message id="1">
<title>11</title>
<content>
<name>lvpingyu</name>
<age>23</age>
</content>
<email>33</email>
</message>
<message id="2">
<title>44</title>
<content>
<name>lvpingyu</name>
<age>23</age>
</content>
<email>66</email>
</message>
</messages>

------------------------------------------------------------------------------------------------------
应用jdom生成xml文件
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.output.XMLOutputter;
public class JavaXML {
public void BuildXMLDoc() throws IOException, JDOMException {
// 创建根节点 list;
Element root = new Element("list");
// 根节点添加到文档中;
Document Doc = new Document(root);
// 此处 for 循环可替换成 遍历 数据库表的结果集操作;
for (int i = 0; i < 5; i++) {
// 创建节点 user;
Element elements = new Element("company");
// 给 company 节点添加属性 id;
elements.setAttribute("id", "" + i);
// 给 company 节点添加子节点并赋值
// new Element("company_name")中的 "company_name" 替换成表中相应字段,setText("name")中 "name 替换成表中记录值;
elements.addContent(new Element("company_name").setText("name" + i));
elements.addContent(new Element("company_email").setText("@" + i+ ".com"));
// 给父节点list添加company子节点;
root.addContent(elements);
}
XMLOutputter XMLOut = new XMLOutputter();
// 输出company_list.xml文件;
XMLOut.output(Doc, new FileOutputStream("company_list.xml"));
}
/**
* 主方法用于测试
* @param args
*/
public static void main(String[] args) {
try {
JavaXML javaXML = new JavaXML();
javaXML.BuildXMLDoc();
} catch (Exception e) {
e.printStackTrace();
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值