使用Dom生成xml檔案和解析xml檔案

2021-08-25 21:14:20 字數 2674 閱讀 2686

xml這種檔案格式在很多時候都是很適合我們用來訪問資料的,所以利用程式來生成xml檔案和解析xml檔案就顯得比較重要了。在dom中是把每乙個元素都看做是乙個節點node的,所有頁面上的屬性、元素等都是繼承自node的,所以當獲取到的是乙個node,而你知道它實際的型別並需要使用的時候就可能會需要進行型別轉換了。

element root = document.getdocumentelement();//獲取根節點

下面是**:

生成xml:

public void genexmlbydom() throws exception 

//step8:把剛剛建立的根節點新增到document物件中

//step9:獲得乙個transforme***ctory物件

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

//step10:獲得乙個transformer物件

transformer transformer = transforme***ctory.newtransformer();

//step11:把document物件用乙個domsource物件包裝起來

source xmlsource = new domsource(document);

//step12:建立乙個儲存目標物件

result outputtarget = new streamresult(new file("persons.xml"));

//step13:生成相應的xml檔案

transformer.transform(xmlsource, outputtarget);

}

生成的xml檔案是這個樣子

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

name_0

address_0

email_0

name_1

address_1

email_1

name_2

address_2

email_2

name_3

address_3

email_3

name_4

address_4

email_4

在進行輸出寫到檔案的時候可以設定一些transformer輸出的引數,如xml的編碼,或者輸出形式等。

transformer.setoutputproperty("encoding", "utf-8");//設定文件編碼,屬性也可以使用outputkeys的靜態常量屬性設定

transformer.setoutputproperty(outputkeys.method, "xml");//輸出方式,可以是xml、html和text

下面的解析也是基於這個檔案的。

解析xml:

public void par***mlbydom() throws exception {

//step1:獲得documentbuilde***ctory

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

//step2:獲得documentbuilder

documentbuilder db = factory.newdocumentbuilder();

//step3:把需要解析的xml檔案載入到乙個document物件中

document document = db.parse("persons.xml");

//獲取所有名稱為person的元素

nodelist nodelist = document.getelementsbytagname("person");

for (int i=0;i解析後輸出的結果:

id = id_0

name = name_0

address = address_0

email = email_0

-------------------------------------

id = id_1

name = name_1

address = address_1

email = email_1

-------------------------------------

id = id_2

name = name_2

address = address_2

email = email_2

-------------------------------------

id = id_3

name = name_3

address = address_3

email = email_3

-------------------------------------

id = id_4

name = name_4

address = address_4

email = email_4

-------------------------------------

備忘錄 xml檔案的生成和解析 DOM 1

xml的解析一般分為兩種方式,一種是sax事件流的方式,另外一種是基於dom的xml文件樹結構解析,sax是一邊解析一邊載入,而dom需要一次性將xml檔案全部載入到記憶體中,再解析構建成文件數的模式。首先看一下基於dom的xml解析和建立。案例xml內容 quote ddviplinux m yy...

解析xml檔案(DOM解析)

解析的檔案 醫院心電圖記錄單 門診號 1002080066 住院號 201800964 姓名 羅2 性別 女 年齡 26歲 心檢號 科室 婦產科 床號 9 複查時註明原心檢號 韻律 竇律 心房率 82 心室率 82 軸向 電軸正常 pr間期 0.13 qrs波 0.08 qt間期 0.34 正常心電...

Dom解析XML檔案

dom解析xml檔案的原理是把xml檔案的文件樹物件全部載入到記憶體中,然後解析,這種解析方式的缺點在於在手機 pad等cpu運算速度不快,記憶體有限的裝置上會影響軟體效率和系統效能。使用dom技術解析xml檔案案例 maomao 26 hy 27解析 public static listdompa...