XML與java的應用

2021-08-26 06:28:16 字數 3098 閱讀 3546

對於xml處理方面,w3c有兩種解決方法:

(1)dom(document object model):

(2)sax(****** api for xml)

先將xml文件解析成dom樹,並放入記憶體,能夠隨機訪問任意節點。

缺點:因為需要放入記憶體操作,所以對檔案大小有限制。

dom位於org.w3c.dom包中。

dom有3個核心的介面:

(1)document:是整個文件的根結點。只有取得了document結點,才能夠對文件操作。

常用方法:

(1)element elem = document.createelement("elem"); //建立乙個結點

(2)attribute attr = document.createattribute("attr"); //建立乙個屬性

(3)text t = document.createtextnode("text"); //建立乙個文字節點

(4)nodelist list = document.getelementbytagname("..."); //尋找某個結點

(2)node:dom樹是由結點組成,因此結點是很重要的。

常用方法:

(2)getfirstchild(); //獲得第乙個子節點

(3)getnodevalue(); //得到節點的值

(4)haschildnodes(); //是否還有子節點

(3)nodelist:是由node組成的乙個list。

常用方法:

(1)item(int x); //獲得第幾個節點

(2)getlength(); //獲得list的長度

如果要獲得document物件,需要:

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

documentbuilder builder = factory.newdocumentbuilder();

document doc = builder.parse("....");獲得doc

生成xml檔案方法:需要transforme***ctory,transformer,streamresult,domsource。

方法:document doc = builder.newdocument();

生成dom樹

streamresult result = new streamresult(new file("..."));

domsource source = new domsource(doc);

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

transformer t = factory.newtransformer();

t.transform(source,result);即可

sax介紹:

只能讀取,不能生成或改變,並且只能遍歷。

缺點:只能讀取。

(1)dom4j

dom4j是乙個xml操作的包,為了提供給使用者更簡便的操作xml。

以下是生成乙個xml檔案的**:

document doc = documenthelper.createdocument();

element name = doc.addelement("name");

element first = name.addelement("firstname");

element second = name.addelement("secondname");

first.settext("xia");

second.settext("second");

outputformat format = outputformat.createprettyprint();

format.setencoding("gb2312");

xmlwriter writer = new xmlwriter(new fileoutputstream("out.xml"),format);

writer.write(doc);

writer.close();

以下是讀取乙個xml檔案的**:

saxreader reader = new saxreader();

document doc = reader.read(new file("out.xml"));

element root = doc.getrootelement();

iterator iter = root.elementiterator();

element elem = (element)iter.next();

string str = elem.elementtext("first");

(2)jdom:也是乙個非常好的解析工具,但是效能上比dom4j差了不少,所以不用。

這裡通過id進行查詢。

var elem = document.getelementbyid("id");

elem.innerhtml

生成乙個過程:

var form = document.getelementbyid("form");//獲得表單節點

element button = document.createelement("input");//建立乙個節點

button.setattribute("type","button");//設定屬性

button.setattribute("value","button");//設定屬性

XML中DTD,XSD的區別與應用

xml我們並不陌生,在企業級應用中有很廣的用途。具體就不再說,下面介紹一下dtd,xsd的區別並以xsd為例看spring中定義與使用。1.dtd documnet type definition dtd即文件型別定義,是一種xml約束模式語言,是xml檔案的驗證機制,屬於xml檔案組成的一部分。d...

XML中DTD,XSD的區別與應用

xml我們並不陌生,在企業級應用中有很廣的用途。具體就不再說,下面介紹一下dtd,xsd的區別並以xsd為例看spring中定義與使用。1.dtd documnet type definition dtd即文件型別定義,是一種xml約束模式語言,是xml檔案的驗證機制,屬於xml檔案組成的一部分。d...

XML中DTD,XSD的區別與應用

xml我們並不陌生,在企業級應用中有很廣的用途。具體就不再說,下面介紹一下dtd,xsd的區別並以xsd為例看spring中定義與使用。b size large 1.dtd documnet type definition size b dtd即文件型別定義,是一種xml約束模式語言,是xml檔案的...