C 對XML進行操作

2021-06-19 10:43:24 字數 4002 閱讀 7039

c#操作xml時,要引入命名空間using system.xml

獲取根節點的方法:

1、知道根節點名稱:

xmlnode root = xmldoc.selectsinglenode("根節點名稱");

2、不知道根節點名稱:

xmlelement root = xmldoc.documentelement;

xml中node(節點)和element(元素)的區別(還是不太明白)

1、element是乙個小範圍的定義,必須含有完整資訊的結點才能叫做元素。例如:內容

,乙個元素一定是乙個節點,乙個節點不一定是乙個元素。

2、node是基本物件,attribute,element,text等都是node的子物件。

建立節點

1、createelement() 方法

有乙個引數,兩個引數,三個引數三種過載,引數型別均為string。

乙個引數:createelement("元素名稱")

兩個引數:createelement("元素名稱","元素的命名空間")

三個引數:createelement("元素的字首","元素的名稱","元素的命名空間")

2、createnode() 方法

三個引數 都為string型別

createnode("節點型別","節點名稱","節點命名空間")

四個引數 都為string型別

createnode("節點型別","節點的字首","節點名稱","節點命名空間")

問題:節點字首有什麼作用?結點命名空間有什麼作用?

增加節點:

增加節點屬性:

setattribute("屬性名","屬性值")方法

刪除節點屬性:

removeattribute("屬性名稱")

給節點新增資料:

1、給節點的innertext賦值

例子:xmlelement ename = doc.createelement("name");

ename.innertext = aaaaa;

2、新增xmltext節點,為其新增值

尋找某個節點(尋找name節點):

先找到根節點,找出根節點下的節點列表(xmlnodelist),遍歷每個節點。

再找每個節點下的節點列表,進行遍歷,指導找到所需要的節點。

方法:xmlnode root = xmldoc.selectsinglenode("msg");

xmlnodelist nodelist = root.childnodes;

foreach (xmlnode node in nodelist)}

刪除節點

removeall(無引數)

removechild(要移除的節點)

更新節點

1、replacechild(新節點,老節點)

建立乙個新節點,替換老節點

2、找到要更新的節點,重新設定其屬性和資料

用gridview顯示xml檔案中的資料

[c-sharp]view plain

copy

dataset ds = 

newdataset();  

));  

gridview1.datasource = ds.tables[0];  

gridview1.databind();  

xml檔案

[xhtml]view plain

copy

xmlversion

="1.0"

encoding

="utf-8"

?>

<

bookstore

>

<

book

genre

="ee"

isbn

="2-3631-4"

>

<

title

>

三國演義

title

>

<

author

>

lfdfd

author

>

<

price

>

55.95

price

>

book

>

<

book

isbn

="2-3631-4"

>

<

title

>

cs從入門到精通

title

>

<

author

>

漲紅author

>

<

price

>

58.3

price

>

book

>

<

book

genre

="計算機"

isbn

="2-3631-4"

>

<

title

>

cs從入門到精通

title

>

<

author

>

蓋茨author

>

<

price

>

58.3

price

>

book

>

<

book

genre

="計算機"

isbn

="2-3631-4"

>

<

title

>

cs從入門到精通

title

>

<

author

>

蓋茨author

>

<

price

>

58.3

price

>

book

>

bookstore

>

顯示效果:

刪除屬性為計算機的節點

[c-sharp]view plain

copy

xmldocument xmldoc = 

newxmldocument();  

));  

xmlnodelist xnl = xmldoc.selectsinglenode("bookstore"

).childnodes;  

foreach

(xmlnode xn 

inxnl)  

}  ));  

xe.parentnode.removechild(xe)

尋找到xe節點的父節點,再刪除他的子節點。那麼此節點(包括節點標記)將不存在。顯示中將沒有空行

xe.removeall()

移除節點內容,但是節點標籤還在。顯示中有空行

C 庫Tinyxml對xml進行操作

首先將這6項,新增到原始檔中,否則會出錯。標頭檔案包含 include include include tinystr.h include tinyxml.h 根據標籤名獲取元素 tixmlelement 自定變數 上一級元素指標變數 firstchildelement 標籤名 獲取文字 要獲取上圖...

C 中對XML的操作

現在有乙個xml檔案,名稱 bookstore.xml,資料如下 oberon s legacy corets,eva 5.95 現在對這個xml檔案進行如下操作 1 往節點中插入乙個節點 xmldocument doc new xmldocment doc.load bookstore.xml x...

c 對mssql進行操作(ado)

ado是以com的形式來進行提供,所以他的許多行為都必須支援com的規範,在進行ado操作之前必須將ado的com物件引入到專案當中。引入 import c program files commonfiles system ado msado15.dll no namespace rename eo...