小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

XML文件操作之dom4j

 Bladexu的文庫 2019-04-23

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

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

 

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

 

SAXReader,用于讀取外部的xml文件,實例

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

 

SAXReader 的read方法可以讀取外部的xml文件,返回一個Document 對象

 

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

 

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

 

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

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

 

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

 

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

 

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

 

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

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

 

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

 

remove(Attribute),移除一個指定的Attribute對象

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

 

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

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

 

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

element.addCDATA("紅樓夢是中國四大名著之一");

 

 

Attribute,屬相對象,操作屬性值,通過Element對象的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);

 

實例代碼

test.xml文件如下:

 

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

 

執(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("紅樓夢");
            Attribute attr=element.attribute("id");
            element.remove(attr);
            element.addAttribute("作者", "wang");
            Element e=element.addElement("朝代");
            e.addText("清朝");
            element.addCDATA("紅樓夢是中國四大名著之一");
            
            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</作者>  
    <朝代>明朝</朝代> 
  </西游記>  
  <紅樓夢 作者="wang"> 
    <作者>曹雪芹</作者>  
    <朝代>清朝</朝代><![CDATA[紅樓夢是中國四大名住著之一]]>
  </紅樓夢> 
</四大名著>

 

 

 

 

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多