xml檔案的操作

2021-06-25 20:59:44 字數 3990 閱讀 9933

專案中基本都會用到xml,今天整理下關於xml的一些操作,一下兩個鏈結是比較好的參考,大家可以看看。

【參考】

【參考】

2 、xml 資料的查詢 

最常見的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= bjdoc.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 

using unityengine;

using system.collections;

using system.xml;

using system.collections.generic;

public enum nodelist

public class singlexmlwr

return _xmlwriteread;

} }/// /// 建立xml文件

///

/// true, if xml document was created, false otherwise.

/// _file name.

public bool creatxmldocument(string _filename)

catch(xmlexception e)

return _iscreat;

} /// /// 讀取xml文件

///

/// _file name.

public void readxmldocument(string _filename)

} } /// /// 建立節點、新增屬性

///

/// true, if attribute was added, false otherwise.

/// xml檔案路徑

/// 新增的節點名

/// 新增的節點genre屬性.

/// 新增的節點isbn屬性.

public bool addattribute(string _filename, string _node,string _genre,string _isbn)

catch(xmlexception e)

return _isadd;

} /// /// 新增節點資料

///

/// xml檔案路徑

/// 新增的節點的父節點

/// 新增的新節點的名字

/// 新增的新節點的內容.

public void addnodedata(string _filename, string _parentnode,string _addnode,string _content)

/// /// 更新節點資料

///

/// xml檔案路徑.

/// 需要更新的節點的名字.

/// 需要更新的節點的父節點的屬性.

/// 需要更新的內容

public void updatenodedata(string _filename,string _nodename,string _attribute,string _content)}}

} /// /// 刪去節點資訊

///

/// xml檔案路徑

/// 需要刪除的節點.

/// 需要刪除的節點的屬性.

public void removenodedata(string _filename,string _removenode,string _attribute)

} }

}

操作XML檔案

1 操作xml檔案的類庫位於system.xml命名空間下 xmlnode 是乙個抽象類,代表乙個節點。其中document,element,attribute,text 等都是特定的節點型別。注意其實現的幾個介面。xmlnodelist是乙個比較有用的集合類 xmldocument 代表乙個dom...

Xml檔案操作

using system using system.text using system.xml class xmloperate private void readxmlfile string filename private void addelement xmldocument xmldocum...

操作XML檔案

操作函式 require rexml document require pathname include rexml filepath file.join pathname.new file.dirname file realpath,book.xml 建立乙個檔案物件 input file.new...