日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

XML文件操作之dom4j

 Bladexu的文庫(kù) 2019-04-23

能夠操作xml的api還是挺多的,DOM也是可以的,不過(guò)在此記錄下dom4j的使用,感覺(jué)確實(shí)挺方便的

所需jar包官網(wǎng)地址:http://www./dom4j-1.6.1/

 

dom4j相關(guān)的重要類(lèi)和方法

 

SAXReader,用于讀取外部的xml文件,實(shí)例

SAXReader reader=new SAXReader();
        
Document document=reader.read(new File("f:/test.xml"));

 

SAXReader 的read方法可以讀取外部的xml文件,返回一個(gè)Document 對(duì)象

 

Document,dom4j的一個(gè)文檔對(duì)象,用于操作xml文檔的結(jié)構(gòu),可通過(guò)調(diào)用它的getRootElement()方法獲取根元素Element對(duì)象

 

Document document=reader.read(new File("f:/test.xml"));
            
Element root=document.getRootElement();

 

Element,元素對(duì)象,它的方法還是挺多的,是主要操作對(duì)象。方法如下:

element("ElementName"),方法可以獲取該元素標(biāo)簽中的名稱(chēng)為ElementName的子Element元素對(duì)象

 

Element root=document.getRootElement();
Element element=root.element("紅樓夢(mèng)");

 

attribute("id") ,獲取屬性為id的Attribute對(duì)象

 

Attribute attr=element.attribute("id");

 

addElement("ElementName"),添加一個(gè)新的子Element標(biāo)簽,名字為ElementName

addText(""),為element對(duì)象添加 text值

 

Element e=element.addElement("朝代");
e.addText("唐朝");

 

remove(Attribute),移除一個(gè)指定的Attribute對(duì)象

Element element=root.element("紅樓夢(mèng)");
Attribute attr=element.attribute("id");
element.remove(attr);

 

addAttribute("name","value"),添加一個(gè)新的屬性

element.addAttribute("作者", "wang");

 

addCDATA("")添加一段不可解析的字符

element.addCDATA("紅樓夢(mèng)是中國(guó)四大名著之一");

 

 

Attribute,屬相對(duì)象,操作屬性值,通過(guò)Element對(duì)象的Attribute("")方法獲取

 

XMLWriter,用于輸出xml到指定文件

 

OutputFormat format = OutputFormat.createPrettyPrint(); //格式化輸出文件
format.setEncoding("UTF-8");
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("f:/test2.xml")),format);
xmlWriter.write(document);

 

實(shí)例代碼

test.xml文件如下:

 

<?xml version="1.0" encoding="UTF-8"?>  
<四大名著>  
    <西游記 id="x001">  
        <作者>吳承恩1</作者>  
        <作者>吳承恩2</作者>  
        <朝代>明朝</朝代>  
    </西游記>  
    <紅樓夢(mèng) id="x002">  
        <作者>曹雪芹</作者>  
    </紅樓夢(mèng)>  
</四大名著> 

 

執(zhí)行代碼如下:

package util;

import java.io.File;
import java.io.FileOutputStream;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class XmlUtil {

    public static void main(String[] args) {
        parseXml();
    }
    
    public static String parseXml(){
        String xmlResult = null;
        SAXReader reader=new SAXReader();
        
        try {
            Document document=reader.read(new File("f:/test.xml"));
            
            Element root=document.getRootElement();
            Element element=root.element("紅樓夢(mèng)");
            Attribute attr=element.attribute("id");
            element.remove(attr);
            element.addAttribute("作者", "wang");
            Element e=element.addElement("朝代");
            e.addText("清朝");
            element.addCDATA("紅樓夢(mèng)是中國(guó)四大名著之一");
            
            OutputFormat format = OutputFormat.createPrettyPrint();  
            format.setEncoding("UTF-8");  
            XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("f:/test2.xml")),format);
            xmlWriter.write(document);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return xmlResult;
    }
}

 

 

執(zhí)行后,生成了test2.xml文件,內(nèi)容如下:

 

<?xml version="1.0" encoding="UTF-8"?>

<四大名著> 
  <西游記 id="x001"> 
    <作者>吳承恩1</作者>  
    <作者>吳承恩2</作者>  
    <朝代>明朝</朝代> 
  </西游記>  
  <紅樓夢(mèng) 作者="wang"> 
    <作者>曹雪芹</作者>  
    <朝代>清朝</朝代><![CDATA[紅樓夢(mèng)是中國(guó)四大名住著之一]]>
  </紅樓夢(mèng)> 
</四大名著>

 

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多