java使用dom4j生成與解析xml文檔的方法示例
本文實例講述了java使用dom4j生成與解析xml文檔的方法。分享給大家供大家參考,具體如下:
xml是一種新的數(shù)據(jù)格式,主要用于數(shù)據(jù)交換。我們所用的框架都有涉及到xml。因此解析或生成xml對程序員也是一個技術(shù)難點。這里就用dom4j來生成一個文檔,需要注意的是每個xml文檔只有一個根節(jié)點。
package org.lxh;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class CreateXml {
public static void main(String[] args) {
File f=new File("d:"+File.separator+"my.xml");
Document docu=DocumentHelper.createDocument(); //創(chuàng)建xml文檔
Element linkman=docu.addElement("linkman"); //創(chuàng)建根節(jié)點
Element name=linkman.addElement("name"); //創(chuàng)建子元素
Element age=linkman.addElement("age");
name.setText("陳瑞銀"); //設(shè)置name節(jié)點的內(nèi)容
age.setText("22"); //設(shè)置age節(jié)點的內(nèi)容
OutputFormat format=OutputFormat.createPrettyPrint(); //指定輸出格式
format.setEncoding("UTF-8"); //指定輸出編碼
try {
XMLWriter w=new XMLWriter(new FileOutputStream(f),format); //輸出文件
w.write(docu); //輸出內(nèi)容
w.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
現(xiàn)在看一下文檔生成沒有,如圖所示

文檔生成了,這個文檔比較簡單。生成復(fù)雜的文檔也是一樣的道理。下面來解析一下這個xml。
代碼如下所示
package org.lxh;
import java.io.File;
import java.util.Iterator;
import org.dom4j.*;
import org.dom4j.io.SAXReader;
public class ReadXml {
public static void main(String[] args) {
File f=new File("d:"+File.separator+"my.xml");
SAXReader read=new SAXReader(); //建立SAX解析讀取
Document document=null;
try {
document=read.read(f); //讀取文檔
Element root=document.getRootElement(); //取得根元素
//下面給注釋的部分用于解析復(fù)雜的xml(3層或以上)
/*Iterator it=root.elementIterator(); //取得全部子節(jié)點
while(it.hasNext())
{
/*Element e=(Element)it.next();
System.out.println(e.elementText("name")); //取得文本元素
System.out.println(e.elementText("age"));
}*/
System.out.println(root.elementText("age"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
下面是運行效果截圖

PS:這里再為大家提供幾款關(guān)于xml操作的在線工具供大家參考使用:
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
在線格式化XML/在線壓縮XML:
http://tools.jb51.net/code/xmlformat
XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress
XML代碼在線格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
java多線程之wait(),notify(),notifyAll()的詳解分析
本篇文章是對java多線程 wait(),notify(),notifyAll()進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
MyBatis 探秘之#{} 與 ${} 參傳差異解碼(數(shù)據(jù)庫連接池筑牢數(shù)據(jù)交互
本文詳細(xì)介紹了MyBatis中的`#{}`和`${}`的區(qū)別與使用場景,包括預(yù)編譯SQL和即時SQL的區(qū)別、安全性問題,以及如何正確使用數(shù)據(jù)庫連接池來提高性能,感興趣的朋友一起看看吧2024-12-12
基于SpringMVC中的路徑參數(shù)和URL參數(shù)實例
這篇文章主要介紹了基于SpringMVC中的路徑參數(shù)和URL參數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Spring的自定義擴(kuò)展標(biāo)簽NamespaceHandler解析
這篇文章主要介紹了Spring的自定義擴(kuò)展標(biāo)簽NamespaceHandler解析,在很多情況下,我們需要為系統(tǒng)提供可配置化支持,簡單的做法可以直接基于Spring的標(biāo)準(zhǔn)Bean來配置,Spring提供了可擴(kuò)展Schema的支持,這是一個不錯的折中方案,需要的朋友可以參考下2023-12-12
SpringBoot實現(xiàn)文章防盜鏈的代碼設(shè)計
這篇文章主要介紹了SpringBoot實現(xiàn)文章防盜鏈的代碼設(shè)計,文中通過代碼示例講解的非常詳細(xì),對大家實現(xiàn)文章防盜鏈功能有一定的幫助,需要的朋友可以參考下2024-05-05

