xml的解析和JAXP的dom解析

2021-09-01 22:45:06 字數 1944 閱讀 6882

問題:xml的解析方式有哪些?(dom和sax的區別)

答:dom解析方式:把xml文件全部載入到記憶體中,形成樹狀結構

缺點:如果文件過大,容易產生記憶體溢位問題

優點:可以做增刪改的操作

sax解析方式:邊讀邊解析,基於事件驅動

優點:不會產生記憶體溢位的問題

缺點:不能做增刪改的操作,查詢速度非常快

支援dom和sax兩種解析技術的開發包有哪些

1. sun公司推出的jar包。jaxp支援dom和sax的解析   (jdk  --檢視jdk文件)

2. dom4j公司推出的jar包(dom4j.jar)。支援dom和sax兩種方式(用的最多)

3. jdom公司推出的jar包,支援dom和sax兩種方式

xml的解析:

jaxp的dom解析

解析器的物件:來解析xml的文件(形成樹狀結構)

開發的步驟:

1.獲取dom方式的解析器的工廠類(documentbuilde***ctory.newinstance()     獲取實現類)

2.通過工廠類,獲取dom的解析器物件( .newdocumentbuilder() )返回documentbuilder物件,dom方式的解析物件

3.可以解析xml的文件     (parse(string  url))

4.常常使用的(getelementsbytagname("元素名稱"))

5.返回的nodelist集合    (getlength()       item())

6.通過node介面方法來完成操作

回寫:把記憶體中的dom樹回寫到xml檔案中

先獲取transforme***ctory工廠類

先獲取transformer,代表回寫的類

使用transform(源 ,目的地)來完成回寫           源:記憶體中的document      目的地:要寫入的xml檔案

**示例:

xml檔案

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

《書架》

《書》《書名》紅樓夢《作者》曹雪芹《售價》15《書》

《書名》紅樓夢《作者》曹雪芹《售價》15public class jaxpdom catch (exception e) }

public static void run1() throws parserconfigurationexception, saxexception, ioexception

}}

解析** 在第二本書下新增乙個子節點

public class jaxpdom catch (exception e)

} public static void run2() throws parserconfigurationexception, saxexception, ioexception, transformerexception

}

修改第二本書的作者

public class jaxpdom

public static void run3() catch (exception e)

} //獲取解析器utils

public static document getdocument(string path) throws parserconfigurationexception, saxexception, ioexception

//回寫utils

public static void writexml(document document,string path) throws transformerexception

}

jaxp解析XML之SAX解析

sax解析原理 是事件驅動的xml解析處理方法,是基於事件驅動的。contenthandler文件處理器類中 常用事件方法 startdocument 文件開始事件時呼叫 enddocument 文件結束事件時呼叫 startelement 在每次sax解析器遇到元素的起始標記時被呼叫 charac...

dom4j和jaxp解析工具的

dom4j解析中的幾個物件 node branch document element commment attribute text branch document element jaxp解析中的幾個物件 node document element commment attr text dom4j...

使用jaxp的sax方式解析xml

步驟 建立解析器工廠 根據解析器工廠建立解析器 執行parse操作 建立乙個類,繼承defaulthandler 重寫類中的方法 下述 實現了通過sax,獲取xml中所有name標籤的text屬性 public class saxtest 4 建立乙個類,繼承defaulthan class myd...