DOM生成 解析

2021-08-18 12:45:41 字數 1518 閱讀 6562

開篇注意,由於解析有可能有大檔案非常耗時,建議另開乙個執行緒解析也可以不開具體視情況而定

dom生成

1.拿到document的工廠例項化

documentbuilde***ctory df =documentbuilde***ctory.newinstance();

2.通過工廠例項化拿到document的構造實力

documentbuilder db = df.newdocumentbuilder();

3.通過document的構造實力拿到文件例項

document dm = db.newdocument();

4..通過文件例項建立節點

element rootelement = dm.createelement(節點的名tag);

5.給節點設定屬性

rootelement .setattribute(屬性名,屬性值);

6.設定節點的關係(誰是誰的子元素)

7.輸出到檔案

7.1變壓工廠例項

transforme***ctory tf = transforme***ctory.newinstance();

7.2拿到變壓工廠

transformer tm = tf.newtransformer();

7.3設定工廠的輸出格式

tm.setoutputproperty(outputkeys.encoding,"utf-8");//設定編碼

7.4輸出文件

domsource ds = new domsource(dm);

7.5設定文件輸出位置(也就是路徑)

streamresult sr = new streamresult(new file(getfilesdir().getpath()+"/mydoc.xml"));

7.6設定需要輸出的文件,以及路徑

tm.transform(ds, sr);

dom解析

// 拿到document的工廠方法                               

documentbuilde***ctory doc = documentbuilde***ctory.newinstance();

// 拿到document的構建器

documentbuilder nb = doc.newdocumentbuilder();

// 載入需要解析的檔案

document parse = nb.parse(open);

// 拿到檔案的根節點

element root = parse.getdocumentelement();

//通過根節點拿到子節點的集合

nodelist pnl = root.getelementsbytagname("province");

//遍歷節點的集合

for (int p = 0; p < pnl.getlength(); p++)

中心點:element拿到引數通過getattribute(引數名)內容可以通過gettextcontent()獲取

生成帶中文的xml檔案 dom解析

對 做了一下修改,感覺這樣的xml檔案更符合標準規範 中標紅的是修改的內容,以前的已經注掉了。標藍色的是需要注意的節點關係。看一下就會明白的。root的子節點是nodes,nodes的字節點是node1,node2 修改後的xml 而之前的是不帶item標籤的 修改前的xml transformer...

dom解析與sax解析

時間處理器 文件解析開始 發現元素開始標籤 發現元素結束標籤 文件解析結束 優點不需要等待整個文件 存入,當解析到某一部分時自動觸發到對應方法做處理 不需要將整個文件載入到記憶體中,對記憶體的損耗比較少,無論多大的xml理論上都可以計算 缺點每次解析只能處理一次,下次再想處理還要從新解析 只能查詢 ...

XML解析之DOM解析

一開始我也不會,就找資料,這種資料多的要命,一搜一大堆,眼花繚亂的,沒看到滿意的。反正要掌握的,何不多寫寫,別人寫的大多數是針對某個xml進行解析的,我不喜歡這樣,太麻煩。以下 基本上可以解析平常xml格式的內容了,不需要怎麼改動 首先獲取dom解析最重要的工廠類,通過工廠類獲取解析xml用到的物件...