使用DOM解析XML文件的常用介面 方法

2021-04-12 23:55:05 字數 4161 閱讀 4327

介面:

org.w

3c.dom.node

:public inte***ce node:該

node

介面是整個文件物件模型的主要資料型別。它表示該文件樹中的單個節點。當實現

node

介面的所有物件公開處理子節點的方法時,不是實現

node

介面的所有物件都有子節點。例如,

text

節點可能沒有子節點,且將子節點新增到這樣的節點將導致引發

domexception

。包括屬性

nodename

、nodevalue

和attributes

作為一種獲取節點資訊的機制,無需向下強制轉換為特定的派生介面。在沒有對特定的

nodetype

(如element

的nodevalue

或comment

的attributes

)的屬性的明顯對映的情況下,這將返回

null

。注意,特定的介面可能包含其他更方便的機制來獲取和設定相關資訊。

―――――――――――――――――――――――――――――――――――――――――――――

介面:org.w

3c.dom.document

:public inte***ce document extends node

:document

介面表示整個

html

或xml

文件。從概念上講,它是文件樹的根,並提供對文件資料的基本訪問。

因為元素、文字節點、注釋、處理指令等不能存在於

document

的上下文之外,所以

document

介面還包含所需的建立這些物件的工廠方法。所建立的

node

物件具有

ownerdocument

屬性,該屬性將

node

物件與建立這些物件時的上下文所屬的

document

關聯起來。

document

介面的常用方法:

element getdocumentelement()

:這是一種便捷屬性,該屬性允許直接訪問文件的文件元素的子節點。

―――――――――――――――――――――――――――――――――――――――――――――

介面:org.w

3c.dom.element

:public inte***ce element extends node

:element

介面表示

html

或xml

文件中的乙個元素。元素可能有與它們相關的屬性;由於

element

介面繼承自

node

,所以可以使用一般

node

介面屬性

attributes

來獲得元素所有屬性的集合。

element

介面上有通過名稱獲得

attr

物件或通過名稱獲得屬性值的方法。在

xml中(其中的屬性值可能包含實體引用),應該獲得

attr

物件來檢查表示屬性值的可能相當複雜的子樹。

另一方面,在

html

中(其中的所有屬性都有簡單的字串值),可以使用直接訪問屬性值的方法,這既安全又便捷。

element

介面的常用方法:

nodelist

getelementsbytagname(string name)

:以文件順序返回具有給定標記名稱的所有後代

elements

的nodelist

。―――――――――――――――――――――――――――――――――――――――――――――

介面:org.w

3c.dom.nodelist

:public inte***ce nodelist

:nodelist

介面提供對節點的有序集合的抽象,沒有定義或約束如何實現此集合。

dom中的

nodelist

物件是活動的。

nodelist

中的項可以通過從

0開始的整數索引進行訪問。

nodelist

介面的常用方法:

node

item(int index)

返回集合中的第

index

個項。如果

index

大於或等於此列表中的節點數,則返回

null。

引數:index -

集合中的索引。

返回:返回該

nodelist

中index

位置處的節點;如果索引是無效索引,則返回

null

。int getlength()

列表中的節點數。有效子節點索引的範圍是0 到

length-1

(包含此值)。

―――――――――――――――――――――――――――――――――――――――――――――

介面:org.w

3c.dom.characterdata

:public inte***ce characterdata extends node

:characterdata

介面使用屬性集合和用於訪問

dom中字元資料的方法擴充套件節點。為了清楚起見,在這裡定義此集合,而不是在使用這些屬性和方法的每個物件上定義。任何

dom物件都不會直接對應於

characterdata

,儘管text

和其他的物件是從它繼承該介面的。此介面中的所有

offset都從0

開始。如

domstring

介面中所述,

dom中的文字字串以

utf-16

(即16

位單元序列)表示。在下述情況下,每當需要指示以

16位單元在

characterdata

上進行索引時就使用術語

16位單元。

―――――――――――――――――――――――――――――――――――――――――――――

介面:org.w

3c.dom.text

:public inte***ce text extends characterdata:該

text

介面繼承自

characterdata

,並且表示

element

或attr

的文字內容(在

xml中稱為字元資料)。如果元素的內容中沒有標記,則文字包含在實現

text

介面的單個物件中,此介面是該元素的唯一孩子。如果有標記,則將它解析為資訊項(元素、注釋,等等)和組成該元素的子元素列表的

text

節點。首先通過

dom使文件可用時,文字的每個塊只有乙個

text

節點。使用者可以建立表示給定元素的內容的相鄰的

text

節點,沒有任何插入標記,但應該知道無法在

xml或

html

中表示這些節點之間的分隔,因此它們(通常)不會保持在

dom編輯會話之間。

node.normalize()

方法為每個文字塊將所有這樣的相鄰

text

物件合併為單個的節點。

不對text

節點的內容進行任何詞彙檢查,並且根據節點在文件中的位置,有些字元必須在使用字元引用進行序列化期間轉義;例如,在文字內容是元素或屬性的一部分的字元

"<&"

;文字內容是元素一部分的字串行

"]]>"

;當文字內容是屬性一部分的引號字元

" 或省略符號字元'。

―――――――――――――――――――――――――――――――――――――――――――――

其它常用方法:

public static element getfirstelement(element element, string name)

return (element) nl.item(0); }

public static string get******elementtext(element node, string name)

return ""; }

使用DOM解析xml

解析xml的技術有很多中,本函式使用的是dom技術,其中person類中有id,name,age三個屬性。xml檔案內容如下 shifu 21xiaobaozi 21xiaozeng 22 下面是對上面的xml檔案進行解析的詳細 當然,解析前要將xml檔案寫道輸入流當中。public listpar...

使用dom4j生成 解析XML文件

通過dom4j來生成 解析xml文件。簡單的說,只要我們熟練運用api即可完成。不論是jdom還是dom4j,我們都可以從三個方面入手 元素,屬性,文字。方式一 document document documenthelper.createdocument element root document...

dom4j輸入xml文件與解析xml文件

書寫xml文件 try 到這一步,目前將所有的student例項都新增到了doc中,但是還未生成檔案 4.建立輸出流 fileoutputstream fos new fileoutputstream student.xml xmlwriter writer new xmlwriter fos,ou...