XML中的方法總結

2021-06-22 13:43:51 字數 3398 閱讀 3146

最常見的xml資料型別有:element, attribute,comment, text.

element, 指形如tom的節點。它可以包括:element, text, comment, processinginstruction, cdata, and entityreference.

attribute, 指在中的粗體部分。

comment,指形如: 的節點。

text,指在tom的粗體部分。

在xml中,可以用xmlnode物件來參照各種xml資料型別。

2.1 查詢已知絕對路徑的節點(集)

objnodelist = objdoc.selectnodes(「company/department/employees/employee」)

或者objnodelist = objnode.selectnodes(「/company/department/employees/employee」)

以上兩種方法可返回乙個nodelist物件,如果要返回單個節點可使用selectsinglenode方法,該方法如果查詢到乙個或多個節點,返回第乙個節點;如果沒有查詢的任何節點返回 nothing。例如:

objnode = objnode.selectsinglenode(「/company/department/employees/employee」)

if not (objnode is nothing) then

『- do process

end if

2.2 查詢已知相對路徑的節點(集)

可使用類似於檔案路徑的相對路徑的方式來查詢xml的資料

objnode = objdoc.selectsinglenode(「company/department」)

objnodelist = objnode.selectnodes(「../department)

objnode = objnode.selectnode(「employees/employee」)

2.3 查詢已知元素名的節點(集)

在使用不規則的層次文件時,由於不知道中間層次的元素名,可使用//符號來越過中間的節點,查詢其子,孫或多層次下的其他所有元素。例如:

objnodelist = objdoc.selectnodes(「company//employee」)

2.4 查詢屬性(attribute)節點

以上的各種方法都返回元素(element)節點(集),返回屬性(attribute),只需要採用相應的方法,在屬性名前加乙個@符號即可,例如:

objnodelist = objdoc.selectnodes(「company/department/employees/employee/@id」)

objnodelist = objdoc.selectnodes(「company//@id」)

2.5 查詢text節點

使用text()來獲取text節點。

objnode = objdoc.selectsinglenode(「company/department/deparmt_name/text()」)

2.6 查詢特定條件的節點

使用符號來查詢特定條件的節點。例如:

a. 返回id號為 10102的employee節點

objnode = objdoc.selectsinglenode(「company/department/employees/employee[@id=』10102』]」)

b. 返回name為zhang qi的name 節點

objnode = objdoc.selectsinglenode(「company/department/employees/employee/name[text()=』zhang qi』]」)

c. 返回部門含有職員22345的部門名稱節點

objnode = objdoc.selectsinglenode("company/department[employees/employee/@id='22345']/department_name")

2.7 查詢多重模式的節點

使用 | 符號可以獲得多重模式的節點。例如:

objnodelist = objdoc.selectnodes(「company/department/department_name | company/department/manager」)

2.8 查詢任意子節點

使用*符號可以返回當前節點的所有子節點。

objnodelist = objdoc.selectnodes(「company/*/manager)

或者objnodelist = objnode.childnodes

3 xml資料的編輯

3.1 增加乙個元素的屬性(attribute)節點

dim objnodeattr as xmlnode

objnodeattr = objdoc.createattribute("id", nothing)

objnodeattr.innerxml = "101"

3.2 刪除乙個元素的屬性

objnode.attributes.remove(objnodeattr)

3.3 增加乙個子元素(element)

dim objnodechild as xmlnode

objnodechild = objdoc.createelement(nothing, "id", nothing)

objnodechild.innerxml = "101"

3.4 刪除乙個子元素

objnode.removechild(objnodechild)

3.5 替換乙個子元素

objnode.replacechild(newchild,oldchild)

4 參考資料

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

cai wubu

zhang bin

12345

zhang bin

male

10101

zhang qi

female

10102

zhang xia

male

10201

zhangchuang

male

10202

zhang jun

male

kaifa bu

wang bin

22345

wang bin

male

20101

wang qi

female

20102

wang xia

male

20201

wang chuang

male

20201

wang jun

male

python解析xml的方法總結

使用python開發時,由於python的開源生態圈非常的給力,對於實現同乙個功能,往往在這方面的類庫非常多,而開發者也同樣面臨著如何選擇最佳的 類庫作為輔助開發的工具。本文將記錄本人在使用python處理xml格式資料時測試過的類庫,有些類庫由於先天不足,無法支援一些特性,涉及的類庫或模 塊有xm...

SAX讀取xml檔案的方法總結

xml檔案的讀取有多種方法,每種方法採用不同的操作來讀取xml檔案。本次將的是sax的方法讀取xml檔案。原理 sax對xml檔案的讀取是採用事件機制的,當某事件發生時,就會自動的觸發定義好的事件處理方法。在一定程度上與訊息機制是相似的。這也是為什麼我們要寫事件處理類 handler類 的原因。基本...

XML的個人習慣解析方法總結

xml檔案的解析方法 xmlparse.cpp 定義控制台應用程式的入口點。include stdafx.h include include 正規表示式的標頭檔案 include tinyxml.h 包含tinyxml類庫 using namespace std import msxml6.dll ...