`

jdom 读写xml文件例子

    博客分类:
  • XML
XML 
阅读更多
事先需要从这里下载: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();   
        }   
    }   
  
}  


分享到:
评论

相关推荐

    java中jxl.jar读写excel和jdom.jar读写xml的例子

    java中jxl.jar读写excel和jdom.jar读写xml的例子(含有所需jar包),经典实用。

    Jdom 操作的例子和包

    Jdom 操作xml 对节点、对属性的添加,写入文件,等等

    jsp 下xml例子

    在jsp页面下创建xml文件,对xml文件添加,读取操作。

    java语言——四种读取xml文件的方式,以及实现对excel文件的读取与保存(含相关的jar包)

    本资源分别用了四种方式:原生DOM、JDOM、SAX和DOM4J实现的对xml文件的读取,另外还有对excel文件读取与保存的例子,并且资源带有jdom.jar、poi-ooxml.jar和poi-3.7jar包

    JavaXml读写操作四种方式汇总

    涵盖了DOM、SAX、JDOM和DOM4J四种方式,读写xml。都给出了具体例子,都是可执行的。

    xml入门教程/xml入门教程

    XSLT,是用于对XML进行文档格式转换,把一个XML文档转换成另一种格式的XML文档,但是其中内容是不变的。 &2.DTD(Document Type Difinition DTD文档是用于规定XML文档的结构。只有结构符合所引用的DTD文件的XML文件...

    DWR.xml配置文件说明书(含源码)

    DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第3章 对xml文档进行分析 46 3.1 dom、sax和jaxp 46 3.2 使用dom解析xml文档 47 3.2.1 dom结构模型 47 3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第3章 对xml文档进行分析 46 3.1 dom、sax和jaxp 46 3.2 使用dom解析xml文档 47 3.2.1 dom结构模型 47 3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第3章 对xml文档进行分析 46 3.1 dom、sax和jaxp 46 3.2 使用dom解析xml文档 47 3.2.1 dom结构模型 47 3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax...

    JAVA编程百例(照着例子更容易!)

    实例34 读写文件(字符操作) 实例35 获取文件信息 实例36 目录操作 实例37 读取随机文件 实例38 操作EXECL文件 实例39 生成PDF文件 实例4 矢量对象操作 实例40 压缩和解压文件 实例41 执行系统命令 实例42 获取...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第3章 对xml文档进行分析 46 3.1 dom、sax和jaxp 46 3.2 使用dom解析xml文档 47 3.2.1 dom结构模型 47 3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax...

    java使用dom4j操作xml示例代码

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件,下面我来个小例子学习他的使用方法

    JPList - Java library for ASCII PLists-开源

    JPList项目提供了一个Java库,用于解析和构建与Java对象之间的ASCII PList流,这与JDOM对XML所做的类似。 PLists提供了XML的更紧凑且同样丰富的替代方案,作为数据序列化机制。

    java源码包---java 源码 大量 实例

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    java源码包2

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    java源码包3

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    java源码包4

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义...

Global site tag (gtag.js) - Google Analytics