当前位置: 代码迷 >> 综合 >> jdom 读写xml文件例子
  详细解决方案

jdom 读写xml文件例子

热度:75   发布时间:2024-01-09 21:25:16.0
事先需要从这里下载:http://www.jdom.org/dist/binary/ jdom.jar
JdomRWXML.java 源码:
import java.io.FileInputStream;   
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

public class JdomRWXML {
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++) {
// 创建新节点 company;
Element elements = new Element("company");
// 给 company 节点添加属性 id;
elements.setAttribute("id", "" + i);
// 给 company 节点添加子节点并赋值
elements
.addContent(new Element("company_name").setText("name" + i));
elements.addContent(new Element("company_email").setText("name" + i
+ "@163.com"));
// 给父节点list添加company子节点;
root.addContent(elements);
}
XMLOutputter XMLOut = new XMLOutputter();
// 输出company_list.xml文件;
XMLOut.output(Doc, new FileOutputStream("company_list.xml"));
}

public void ReadXMLDoc() throws IOException, JDOMException {
SAXBuilder sb = new SAXBuilder();// 建立构造器
Document doc = sb.build(new FileInputStream("company_list.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 sub1 = item.getChild("company_name");// 取得当前节点的字节点
String company_name = sub1.getText();// 取得当前节点的值
System.out.println("company_name-->" + company_name);

Element sub2 = item.getChild("company_email");
String company_email = sub2.getText();
System.out.println("company_email-->" + company_email);
}

}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
JdomRWXML jdomRWXML = new JdomRWXML();

System.out.println("--------BuildXMLDoc----------");
jdomRWXML.BuildXMLDoc();

System.out.println("--------ReadXMLDoc----------");
jdomRWXML.ReadXMLDoc();

} catch (Exception e) {
e.printStackTrace();
}
}

}


使用jdom读写xml文档的实例

import java.io.FileInputStream;   
import java.io.FileOutputStream;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

public class XMLFile
{
String id = "";
String indent = ""; // 缩进符号
SAXBuilder sb = new SAXBuilder();//建立构造器
boolean newLines = true; // 是否产生新行
XMLOutputter outp = new XMLOutputter ();
public static void main(String[] args)
{

}

public void removeContent(String fileName,int pos) //删除指定位置的 节点 序号从0开始
{
try
{
Document doc = sb.build(new FileInputStream(fileName));//读入指定文件
Element MyElement = doc.getRootElement(); //获得根节点
List<?> listTwo = MyElement.getChildren();//得到list,准备遍历所有节点
listTwo.remove(pos); //删除
outp.output(doc,new FileOutputStream(fileName)); // 输出到2.XML文件中
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void modifyContent(String fileName,int pos,String name,String content)// 修改XML内容
{
try
{
Document doc = sb.build(new FileInputStream(fileName));//读入指定文件
Element root = doc.getRootElement();//获得根节点
List<?> list = root.getChildren();//将根节点下的所有子节点放入List中
Element item = (Element)list.get(pos); // 取得根节点下第一个子节点
item.getChild(name).setText(content);
outp.output(doc,new FileOutputStream(fileName)); // 输出到2.XML文件中
}
catch(Exception e)
{
e.printStackTrace();
}

}
public void listContent(String fileName) //读出,并列出XML内容
{
try
{
Document doc=sb.build(new FileInputStream(fileName));//读入指定文件
Element root=doc.getRootElement();//获得根节点
List<?> list=root.getChildren();//将根节点下的所有子节点放入List中
for(int i=0;i<list.size();i++)
{
Element item = (Element)list.get(i);//取得节点实例
String name = item.getAttribute("id").getValue();//取得属性值
System.out.println("id: "+name);
Element sub = item.getChild("title");//取得当前节点的字节点
String text = sub.getText();//取得当前节点的值
System.out.println("Title: "+text);
Element sub2 = item.getChild("content");
String text2 = sub2.getText();
System.out.println("Content: "+text2);
Element sub3 = item.getChild("time");
String text3 = sub3.getText();
System.out.println("Time: "+text3);
id = name;
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void addContent(String fileName,String title,String content,String time) //向XML文件添加内容.
{
try
{
Document doc=sb.build(new FileInputStream(fileName));//读入指定文件
Element root=doc.getRootElement();//获得根节点
List<?> list=root.getChildren();//将根节点下的所有子节点放入List中
Element article = new Element("message");
article.setAttribute("id", (list.size()+2)+"");
article.addContent(new Element("title").setText(title));
article.addContent(new Element("content").setText(content));
article.addContent(new Element("time").setText(time));
doc.getRootElement().addContent(article);
outp.output(doc, new FileOutputStream(fileName)); // 输出到2.XML文件中
}
catch(Exception e)
{
e.printStackTrace();
}
}

}
  相关解决方案