jdom 读写xml文件例子

xiaoxiao2023-03-22  22

事先需要从这里下载: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(); } } }
转载请注明原文地址: https://www.6miu.com/read-4987468.html

最新回复(0)