開篇注意,由於解析有可能有大檔案非常耗時,建議另開乙個執行緒解析也可以不開具體視情況而定
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用到的物件...