`

JDOM 创建 读取 修改 删除 XML文件

    博客分类:
  • J2SE
 
阅读更多

转自:http://takeme.iteye.com/blog/1825967

 

加入 
D:\Soft\jar\jdom.jar 

Java代码  收藏代码
  1. package com.itheima.xml;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileWriter;  
  5. import java.util.Iterator;  
  6. import java.util.List;  
  7.   
  8. import org.jdom.Attribute;  
  9. import org.jdom.Document;  
  10. import org.jdom.Element;  
  11. import org.jdom.input.SAXBuilder;  
  12. import org.jdom.output.Format;  
  13. import org.jdom.output.XMLOutputter;  
  14.   
  15. public class TextJDOMparseXML {//操作使用JDOM解析XML文件的类  
  16.   
  17.     /** 
  18.      * @param args 
  19.      */  
  20.     public static void main(String[] args) {  
  21.         // TODO Auto-generated method stub  
  22.         String fileName="F:/test1.xml";  
  23.         TextJDOMparseXML jdomXml=new TextJDOMparseXML();  
  24.         System.out.println("===============1.运用jdom创建XML文件");  
  25.         if(jdomXml.createXMLFile(fileName, "GB2312")==1)  
  26.             System.out.println("运用JDOM创建XML文件成功!");  
  27.         else  
  28.             System.out.println("运用JDOM创建XML文件失败!");  
  29.         System.out.println("===============2.运用JDOM读取XML文件");  
  30.         jdomXml.read(jdomXml.getDocument(fileName));  
  31.         System.out.println("===============3.修改XML内容,输出修改后的文档");  
  32.         jdomXml.update(fileName, "rongshu""liushu");  
  33.         System.out.println("===============4.删除编号为002的节点,输出修改后的文件");  
  34.         jdomXml.delete(fileName, "002");  
  35.           
  36.     }  
  37.       
  38.     //生成一个新的Document    
  39.     public Document createDocument(){  
  40.         Document document=new Document();  
  41.         return document;  
  42.     }  
  43.     //创建一个节点  
  44.     public Element createElement(String paramName,String paramValue){  
  45.         Element element=new Element(paramName);  
  46.         element.setText(formatTextForXML(paramValue));  
  47.         return element;  
  48.     }  
  49.     //创建 XML文件  
  50.     public int createXMLFile(String fileName,String encoding){  
  51.         int returnValue=0;  
  52.         Document document=createDocument();  
  53.         Element treesElement=createElement("trees"null);  
  54.         Element treeElement=new Element("tree");  
  55.         treeElement.setAttribute("id","001");  
  56.         treeElement.setAttribute("name","rongshu");  
  57.           
  58.         Element typeElement=new Element("type");  
  59.         typeElement.setText("style");  
  60.         typeElement.setAttribute("id","xiaoshu");  
  61.         treeElement.addContent(typeElement);  //添加 子节点  
  62.           
  63.           
  64.         Element descElement=new Element("description");  
  65.         descElement.setText(formatTextForXML("It is a big tree"));  
  66.         treeElement.addContent(descElement);  
  67.           
  68.         treesElement.addContent(treeElement);  
  69.           
  70.         Element tree1Element=new Element("tree");  
  71.         tree1Element.setAttribute("id","002");  
  72.         tree1Element.setAttribute("name","yangshu");  
  73.         Element type1Element=new Element("type");  
  74.         type1Element.setText("style");  
  75.         type1Element.setAttribute("id","dashu");  
  76.         tree1Element.addContent(type1Element);  
  77.         Element desc1Element=new Element("description");  
  78.         desc1Element.setText(formatTextForXML("The tree grows taller from day to day"));  
  79.         tree1Element.addContent(desc1Element);  
  80.         treesElement.addContent(tree1Element);  
  81.           
  82.           
  83.         Element tree2Element=new Element("tree");  
  84.         tree2Element.setAttribute("id","003");  
  85.         tree2Element.setAttribute("name","songshu");  
  86.         Element desc2Element=new Element("description");  
  87.         desc2Element.setText(formatTextForXML("The tree is very beautiful"));  
  88.         tree2Element.addContent(desc2Element);  
  89.         treesElement.addContent(tree2Element);  
  90.           
  91.         Element flowerElement=new Element("flower");  
  92.         flowerElement.setText("rose");  
  93.         treesElement.addContent(flowerElement);  
  94.           
  95.         document.addContent(treesElement);  
  96.         try {  
  97.             saveFile(fileName,document,encoding);  
  98.             returnValue=1;  
  99.         } catch (Exception e) {  
  100.             // TODO: handle exception  
  101.             System.out.println("创建XML文件失败:"+e.getMessage());  
  102.         }  
  103.         return returnValue;  
  104.           
  105.     }  
  106.     //读取xml  
  107.     public void read(Document document){  
  108.         try {  
  109.             Format format=Format.getPrettyFormat();   
  110.             format.setEncoding("GB2312");  
  111.               
  112.             XMLOutputter xmlOutputter=new XMLOutputter(format);  
  113.             xmlOutputter.output(document, System.out);  
  114.         } catch (Exception e) {  
  115.             System.out.println("读取XML文件失败:"+e.getMessage());  
  116.         }  
  117.     }  
  118.     //修改 xml文档节点  
  119.     public int update(String fileName,String oldName,String newName){  
  120.         int returnValue=0;  
  121.         Document document=getDocument(fileName);  
  122.         List list=document.getRootElement().getChildren();  
  123.         for (int i = 0; i < list.size(); i++) {  
  124.             Element element=(Element)list.get(i);  
  125.             Attribute attribute=element.getAttribute("name");  
  126.             if(attribute!=null){  
  127.                 if(attribute.getValue().equals(oldName)){  
  128.                     attribute.setValue(newName);  
  129.                 }  
  130.             }  
  131.         }  
  132.           
  133.         list=document.getRootElement().getChildren("flower");  
  134.         Iterator iter=list.iterator();  
  135.         if(iter.hasNext()){  
  136.             Element el=(Element)iter.next();  
  137.             el.setText("lily");  
  138.             Element date=new Element("date");  
  139.             date.setText("2009-04-10");  
  140.             date.setAttribute("type","calendar");  
  141.             el.addContent(date);  
  142.         }  
  143.           
  144.         try {  
  145.             showFile(fileName,document);  
  146.             returnValue=1;  
  147.         } catch (Exception e) {  
  148.             // TODO: handle exception  
  149.             System.out.println("修改XML文件出错:"+e.getMessage());  
  150.         }  
  151.           
  152.         return returnValue;  
  153.           
  154.           
  155.     }  
  156.     //删除XML 节点  
  157.     public boolean delete(String fileName,String id){  
  158.         boolean returnVlalue=false;  
  159.         Document doc=getDocument(fileName);  
  160.         Element root=doc.getRootElement();  
  161.         List list=root.getChildren("tree");  
  162.         for (int i = 0; i < list.size(); i++) {  
  163.             Element element=(Element)list.get(i);  
  164.             if (element.getAttribute("id").getValue().equals(id)) {  
  165.                 root.removeContent(element);  
  166.             }  
  167.         }  
  168.         try {  
  169.             showFile(fileName, doc);  
  170.             returnVlalue=true;  
  171.         } catch (Exception e) {  
  172.             // TODO: handle exception  
  173.             e.printStackTrace();  
  174.         }  
  175.         return returnVlalue;  
  176.                   
  177.     }  
  178.       
  179.     private void showFile(String fileName, Document document) {  
  180.         // TODO Auto-generated method stub  
  181.         Format format=Format.getPrettyFormat();  
  182.         format.setEncoding("GB2312");  
  183.         format.setIndent(" ");  
  184.         try {  
  185.             XMLOutputter xmlOutputter=new XMLOutputter(format);  
  186.             FileWriter fileWriter=new FileWriter(fileName);  
  187.             xmlOutputter.output(document, fileWriter);  
  188.             xmlOutputter.output(document, System.out);  
  189.         } catch (Exception e) {  
  190.             System.out.println("XML文件输出到控制台出错:"+e.getMessage());  
  191.         }  
  192.     }  
  193.   
  194.     private Document getDocument(String fileName) {  
  195.         // TODO Auto-generated method stub  
  196.         Document document=null;  
  197.         try {  
  198.             SAXBuilder saxBuilder=new SAXBuilder();  
  199.             document=saxBuilder.build(new File(fileName));  
  200.         } catch (Exception e) {  
  201.             // TODO: handle exception  
  202.             System.out.println("载入失败:"+e.getMessage());  
  203.             return null;  
  204.         }  
  205.         return document;  
  206.     }  
  207.   
  208.     private boolean saveFile(String fileName, Document document, String encoding) {  
  209.         // TODO Auto-generated method stub  
  210.         Format format=Format.getPrettyFormat();  
  211.         if(encoding!=null){  
  212.             format.setEncoding(encoding);  
  213.         }  
  214.         format.setIndent(" "); //设置xml文件的缩进  
  215.         try {  
  216.             XMLOutputter xmlOutputter=new XMLOutputter(format);  
  217.             FileWriter fileWriter=new FileWriter(fileName);  
  218.             xmlOutputter.output(document, fileWriter);  
  219.         } catch (Exception e) {  
  220.             System.out.println("保存文件出错:"+e.getMessage());  
  221.             return false;  
  222.         }  
  223.         return true;  
  224.     }  
  225.   
  226.     private String formatTextForXML(String sourceString) {  
  227.         // TODO Auto-generated method stub  
  228.         if (sourceString==null) {  
  229.             return null;  
  230.         }  
  231.         int stLen=0;  
  232.         StringBuffer reString= new StringBuffer();  
  233.         String deString="";  
  234.         stLen=sourceString.length();  
  235.         for (int i = 0; i < stLen; i++) {  
  236.             char ch=sourceString.charAt(i);  
  237.             switch (ch) {  
  238.             case '<':  
  239.                 deString="<";  
  240.                 break;  
  241.             case '>':  
  242.                 deString=">";  
  243.                 break;  
  244.             case '\"':  
  245.                 deString="\"";  
  246.                 break;  
  247.             case '&':  
  248.                 deString="&";  
  249.                 break;  
  250.             case 13:  
  251.                 deString="\n";  
  252.                 break;  
  253.             default:  
  254.                 deString=""+ch;  
  255.                 break;  
  256.             }  
  257.             reString.append(deString);  
  258.         }  
  259.         return reString.toString();  
  260.     }     
  261.       
  262.       
  263. }  
分享到:
评论

相关推荐

    jdom 读取XML 文件

    接下来,我们将详细介绍使用JDOM读取XML文件的步骤: 1. 加载XML文件:使用`SAXBuilder`类来读取XML文件并构建DOM树。如下所示: ```java import org.jdom2.Document; import org.jdom2.input.SAXBuilder; public...

    jdom学习读取xml文件.files

    本教程将深入探讨如何使用JDOM读取XML文件,并阐述其在Spring框架中的应用。 首先,我们了解JDOM的基本概念。JDOM提供了一种树型结构来表示XML文档,其中XML元素、属性、文本和注释等都对应于特定的Java对象。通过...

    JDOM读取XML,并且创建XML

    在JDOM中,读取XML文件通常涉及以下步骤: 1. 创建一个`SAXBuilder`实例,这是解析XML文档的入口点。 2. 使用`SAXBuilder`的`build`方法读取XML文件,返回一个`Document`对象。 3. 通过`Document`对象访问XML文档的...

    java利用jdom读取xml文件

    要使用JDOM读取XML文件,我们需要以下几个步骤: 1. 引入JDOM库:在项目中添加JDOM的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.jdom &lt;artifactId&gt;jdom2 &lt;version&gt;...

    jdom 读取修改xml文件

    ### JDOM 读取与修改 XML 文件 #### JDOM 简介 JDOM(Java Document Object Model)是一个用于处理 XML 数据的 Java 库。它提供了面向对象的 API 来解析、创建和修改 XML 文档。JDOM 的设计非常直观且易于使用,...

    jdom 读取,建立,修改 xml

    **JDOM读取XML** 在JDOM中,读取XML文档首先需要解析XML文件到一个`SAXBuilder`对象,然后通过这个对象构建一个`Document`对象。以下是一个基本的读取XML文件的示例: ```java import org.jdom2.*; import org....

    jdom学习读取xml文件

    jdom学习读取xml文件资料小列子,非常简单明了。

    JDOM操作xml文件的xmlBean

    通过上述分析可以看出,JDOM不仅提供了简洁的API来处理XML文档,还能够很好地应对常见的读取、修改、添加和删除等操作需求。然而,在实际项目中,根据具体的需求和技术栈选择合适的XML处理工具也是非常重要的。

    java读取XML(JDOM)

    要使用JDOM读取XML文件,首先需要导入必要的库: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; ``` 然后,我们可以创建一个`SAXBuilder`实例,用于解析XML...

    使用JDOM解析XML文件

    在Java编程中,JDOM(Java Document Object Model)是处理XML的一种库,它提供了方便的方式来创建、修改和读取XML文档。本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过...

    jdom读取xml全属性文件

    使用JDOM读取XML文件的第一步是引入相关的库。如果你使用的是Maven项目,需要在pom.xml文件中添加JDOM依赖: ```xml &lt;groupId&gt;org.jdom &lt;artifactId&gt;jdom2 &lt;version&gt;2.0.6 ``` 然后,我们可以编写Java代码来...

    用java读取修改xml文件的代码实现

    本文将详细介绍如何使用Java来读取和修改XML文件,主要涉及以下几个核心知识点: 1. **DOM解析器**: Document Object Model(DOM)是一种将XML文档转换为内存中的树形结构的方法,使得可以遍历和修改XML文件。...

    读取和修改xml文件

    在读取XML文件后,可以通过DOM提供的API进行修改,如`Element`的`setTextContent`、`setAttribute`等方法。修改完成后,需使用`Transformer`将`Document`对象转换回XML字符串,保存到文件。 8. **XPath和XSLT** ...

    读取XML文件的四种方法

    使用JDOM方法读取XML文件,需要创建SAXBuilder对象,读取XML文件得到Document对象,然后使用Element对象的getChild Elements方法获取指定标签的元素列表,遍历元素列表进行数据提取。 优点:JDOM方法提供了高效的...

    用JDOM读取XML文件

    用JDOM读取XML文件 用JDOM读取XML文件用JDOM读取XML文件

    jdom1.1.3xml解析工具类

    org.jdom包含了所有的xml文档要素的java类 org.jdom.adapters包含了与dom适配的java类 org.jdom.filter包含了xml文档的过滤器类 org.jdom.input包含了读取xml文档的类 org.jdom.output包含了写入xml文档的类 org....

    用jdom解析xml文件

    3. 读取XML文件并构建DOM树:`File xmlFile = new File("path_to_xml_file"); Document document = saxBuilder.build(xmlFile);` 4. 获取根元素:`Element rootElement = document.getRootElement();` 5. 遍历元素...

    JDOM创建和解析XML

    解析XML文档,通常涉及读取XML文件,将其转换为`Document`对象,然后遍历和操作元素。以下是一个解析XML并打印所有书籍ID的示例: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2...

    JDOM解析本地XML

    JDOM是Java中一个专门用来处理XML的库,它提供了一种高效、灵活且完全符合Java语言习惯的方式来读取、写入和操作XML文档。下面我们将详细探讨JDOM解析本地XML的相关知识点。 首先,JDOM的核心概念包括`Element`、`...

    JDOM对XML文件的读取

    接下来,我们将详细介绍JDOM读取XML文件的步骤: 1. 创建`SAXBuilder`对象:`SAXBuilder`是JDOM中用于构建XML文档的类,它使用SAX解析器来解析XML文件。 ```java import org.jdom2.input.SAXBuilder; SAXBuilder ...

Global site tag (gtag.js) - Google Analytics