C 操作XML小結

2021-06-10 01:25:16 字數 4249 閱讀 5215

文章**

一、簡單介紹

using system.xml;

//初始化乙個xml例項

xmldocument xml=new xmldocument();

//指定乙個節點

xmlnode root=xml.selectsinglenode("/root");

//獲取節點下所有直接子節點

xmlnodelist childlist=root.childnodes;

//判斷該節點下是否有子節點

root.haschildnodes;

//獲取同名同級節點集合

xmlnodelist nodelist=xml.selectnodes("/root/news");

//生成乙個新節點

xmlelement node=xml.createelement("news");

//將節點加到指定節點下某個子節點前

root.insertbefore(node,root.childenodes[i]);

//為指定節點的新建屬性並賦值

node.setattribute("id","11111");

//獲取指定節點的指定屬性值

string id=node.attributes["id"].value;

//獲取指定節點中的文字

string content=node.innertext;

二、具體例項

在c#.net中如何操作xml

需要新增的命名空間:

using system.xml;

定義幾個公共物件:

xmldocument xmldoc ;

xmlnode xmlnode ;

xmlelement xmlelem ;

1,建立到伺服器同名目錄下的xml檔案:

xmlnode root=xmldoc.selectsinglenode("employees");//查詢

xmlelement xe1=xmldoc.createelement("node");//建立乙個節點 

xe1.setattribute("genre","李讚紅");//設定該節點genre屬性 

xe1.setattribute("isbn","2-3631-4");//設定該節點isbn屬性

//結果:在同名目錄下生成了名為data.xml的檔案,內容如下,

<?xml version="1.0" encoding="gb2312"?>

cs從入門到精通

候捷58.3

cs從入門到精通

候捷58.3

xmlwriter = new xmltextwriter(strfilename,encoding.default);//建立乙個xml文件

xmlwriter.formatting = formatting.indented;

xmlwriter.writestartdocument();

xmlwriter.writestartelement("employees");

xmlwriter.writestartelement("node");

xmlwriter.writeattributestring("genre","李讚紅");

xmlwriter.writeattributestring("isbn","2-3631-4");

xmlwriter.writestartelement("title");

xmlwriter.writestring("cs從入門到精通");

xmlwriter.writeendelement();

xmlwriter.writestartelement("author");

xmlwriter.writestring("候捷");

xmlwriter.writeendelement();

xmlwriter.writestartelement("price");

xmlwriter.writestring("58.3");

xmlwriter.writeendelement();

xmlwriter.writeendelement();

xmlwriter.close();

//結果:

<?xml version="1.0" encoding="gb2312"?>

cs從入門到精通

候捷58.3

2,新增乙個結點:

//結果:在xml原有的內容裡新增了乙個結點,內容如下,

<?xml version="1.0" encoding="gb2312"?>

cs從入門到精通

候捷58.3

cs從入門到精通

候捷58.3

c#入門幫助

高手158.3

3,修改結點的值(屬性和子結點):

xmlnodelist nodelist=xmldoc.selectsinglenode("employees").childnodes;//獲取employees節點的所有子節點

foreach(xmlnode xn in nodelist)//遍歷所有子節點 

{ xmlelement xe=(xmlelement)xn;//將子節點型別轉換為xmlelement型別 

if(xe.getattribute("genre")=="張三")//如果genre屬性值為「張三」 

{ xe.setattribute("genre","update張三");//則修改該屬性為「update張三」

//結果:將原來的所有結點的資訊都修改了,xml的內容如下,

<?xml version="1.0" encoding="gb2312"?>

cs從入門到精通

候捷58.3

cs從入門到精通

候捷58.3

c#入門幫助

亞勝158.3

xmlnodelist nodelist=xmldoc.selectsinglenode("employees").childnodes;//獲取employees節點的所有子節點

foreach(xmlnode xn in nodelist) 

{ xmlelement xe=(xmlelement)xn; 

xe.setattribute("test","111111");

//結果:每個結點的屬性都新增了乙個,子結點也新增了乙個,內容如下,

<?xml version="1.0" encoding="gb2312"?>

cs從入門到精通

候捷58.3

1cs從入門到精通

候捷58.3

1c#入門幫助

亞勝158.31

//]結果:刪除了結點的乙個屬性和結點的乙個子結點,內容如下,

<?xml version="1.0" encoding="gb2312"?>

cs從入門到精通

候捷58.3

cs從入門到精通

候捷58.3

c#入門幫助

亞勝158.3

//]結果:刪除了符合條件的所有結點,原來的內容:

<?xml version="1.0" encoding="gb2312"?>

cs從入門到精通

候捷58.3

cs從入門到精通

候捷58.3

c#入門幫助

高手158.3

c#入門幫助

高手158.3

刪除後的內容:

<?xml version="1.0" encoding="gb2312"?>

cs從入門到精通

候捷58.3

cs從入門到精通

候捷58.3

7,按照文字檔案讀取xml

string mystring = myfile.readtoend();//mystring是讀出的字串

myfile.close();

三、高階應用

/*讀取xml資料   兩種xml方式*/

something

something

/*第一種方法*/

ds.readxml("your xmlfile name");

container.dataitem("bb");

container.dataitem("cc");

ds.readxmlschema("your xmlfile name");

/*第二種方法*/

C 操作XML小結

一 簡單介紹 using system.xml 初始化乙個xml例項 xmldocument xml new xmldocument 指定乙個節點 xmlnode root xml.selectsinglenode root 獲取節點下所有直接子節點 xmlnodelist childlist ro...

C 操作XML小結

本文摘自 csdn的博文 c 操作xml小結 一 簡單介紹 using system.xml 初始化乙個xml例項 xmldocument xml new xmldocument 指定乙個節點 xmlnode root xml.selectsinglenode root 獲取節點下所有直接子節點 x...

C 操作XML小結

一 簡單介紹 using system.xml 初始化乙個xml例項 xmldocument xml new xmldocument 指定乙個節點 xmlnode root xml.selectsinglenode root 獲取節點下所有直接子節點 xmlnodelist childlist ro...