asp.net XML文件操作實現(xiàn)代碼
更新時間:2009年12月24日 01:19:36 作者:
這幾天在項目中用到了XML文件配置存儲一些基本信息,如:參數、表格等一些信息存儲。由于記錄不是很多,所以用此文件來代替數據庫中設計的表結構。
以前也學過一些這方面的知識,好久都沒怎么用了,忘得也差不多,正好現(xiàn)在可以重新鞏固一遍,熟悉一下對XML文件的操作。
XML(Extensible Markup Language)即可擴展標記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標準通用標記語言)。Xml是Internet環(huán)境中跨平臺的,依賴于內容的技術,是當前處理結構化文檔信息的有力工具。
擴展標記語言XML是一種簡單的數據存儲語言,使用一系列簡單的標記描述數據,而這些標記可以用方便的方式建立,雖然XML占用的空間比二進制數據要占用更多的空間,但XML極其簡單易于掌握和使用?! ?
XML數據類型有:Element,Attribute,Comment,Text
如下一個簡單的XML文件:
代碼
<?xml version="1.0" encoding="UTF-8"?>
<library>
<books id="計算機類">
<book id="10001">
<name>書名1</name>
<publish>出版社1</publish>
<price>價格1</price>
</book>
<book id="10002">
<name>書名2</name>
<publish>出版社2</publish>
<price>價格2</price>
</book>
</books>
<books id="人文類">
<book id="20001">
<name>書名1</name>
<publish>出版社1</publish>
<price>價格1</price>
</book>
<book id="20002">
<name>書名2</name>
<publish>出版社2</publish>
<price>價格2</price>
</book>
</books>
</library>
Element 元素 <book></book>
Attribute 屬性 id="計算機類"
Text 內容 <name>書名2</name>
一般我們要去XML文件中根據屬性值去查找對應節(jié)點所包含的內容,為了避免嵌套很多節(jié)點的循環(huán),我們可以使用下面的方法,找到所需的節(jié)點。
XmlDocument xdoc = new XmlDocument(); //建立文檔對象
xdoc.Load("book.xml"); //加載xml文件
string Condition = "http://books[@id='計算機類']//book[@id='10001']"; //需要查找節(jié)點的條件
XmlNode node = xdoc.DocumentElement.SelectSingleNode(Condition); //返回符合條件的節(jié)點
foreach (XmlNode xnode1 in node)
{
//該節(jié)點下所有子節(jié)點
XmlNodeList xNodeList2 = node.ChildNodes;
}
查詢條件說明:
1.使用text()來獲取Text節(jié)點
string Condition = "http://books[@id='計算機類']//book[@id='10001']//name//text()";
2.使用[]符號來查詢特定條件的節(jié)點
string Condition = "http://books[@id='計算機類']//book[@id='10001']";
3.使用 | 符號可以獲得多重模式的節(jié)點
string Condition = "http://books[@id='計算機類']//book[@id='10001'] | //books[@id='計算機類']//book[@id='10002']";
4.使用*符號可以返回當前節(jié)點的所有子節(jié)點
string Condition = "http://books[@id='計算機類']//*//name";
XML數據的編輯:
1.增加一個元素的屬性(Attribute)節(jié)點
XmlNode xNodeAtt = new XmlNode();
xNodeAtt = xDoc.CreateAttribute("id",book);
xNodeAtt.InnerXml = "10003";
objNode.Attributes.Append(xNodeAtt);
2.刪除一個元素的屬性
objNode.Attributes.Remove(xAtt);
3.增加一個子元素(Element)
XmlNode xNodeAtt = new XmlNode();
xNodeAtt = xDoc.CreateElement("book","書");
xNodeAtt.InnerXml = "10003";
objNode.Attributes.Append(xNodeAtt);
4.刪除一個子元素
objNode.RemoveChild(nodeChild);
5.替換一個子元素
objNode.ReplaceChild(newChild,oldChile);
來自:http://zhf.cnblogs.com/
XML(Extensible Markup Language)即可擴展標記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標準通用標記語言)。Xml是Internet環(huán)境中跨平臺的,依賴于內容的技術,是當前處理結構化文檔信息的有力工具。
擴展標記語言XML是一種簡單的數據存儲語言,使用一系列簡單的標記描述數據,而這些標記可以用方便的方式建立,雖然XML占用的空間比二進制數據要占用更多的空間,但XML極其簡單易于掌握和使用?! ?
XML數據類型有:Element,Attribute,Comment,Text
如下一個簡單的XML文件:
代碼
復制代碼 代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<library>
<books id="計算機類">
<book id="10001">
<name>書名1</name>
<publish>出版社1</publish>
<price>價格1</price>
</book>
<book id="10002">
<name>書名2</name>
<publish>出版社2</publish>
<price>價格2</price>
</book>
</books>
<books id="人文類">
<book id="20001">
<name>書名1</name>
<publish>出版社1</publish>
<price>價格1</price>
</book>
<book id="20002">
<name>書名2</name>
<publish>出版社2</publish>
<price>價格2</price>
</book>
</books>
</library>
Element 元素 <book></book>
Attribute 屬性 id="計算機類"
Text 內容 <name>書名2</name>
一般我們要去XML文件中根據屬性值去查找對應節(jié)點所包含的內容,為了避免嵌套很多節(jié)點的循環(huán),我們可以使用下面的方法,找到所需的節(jié)點。
XmlDocument xdoc = new XmlDocument(); //建立文檔對象
xdoc.Load("book.xml"); //加載xml文件
string Condition = "http://books[@id='計算機類']//book[@id='10001']"; //需要查找節(jié)點的條件
XmlNode node = xdoc.DocumentElement.SelectSingleNode(Condition); //返回符合條件的節(jié)點
foreach (XmlNode xnode1 in node)
{
//該節(jié)點下所有子節(jié)點
XmlNodeList xNodeList2 = node.ChildNodes;
}
查詢條件說明:
1.使用text()來獲取Text節(jié)點
string Condition = "http://books[@id='計算機類']//book[@id='10001']//name//text()";
2.使用[]符號來查詢特定條件的節(jié)點
string Condition = "http://books[@id='計算機類']//book[@id='10001']";
3.使用 | 符號可以獲得多重模式的節(jié)點
string Condition = "http://books[@id='計算機類']//book[@id='10001'] | //books[@id='計算機類']//book[@id='10002']";
4.使用*符號可以返回當前節(jié)點的所有子節(jié)點
string Condition = "http://books[@id='計算機類']//*//name";
XML數據的編輯:
1.增加一個元素的屬性(Attribute)節(jié)點
XmlNode xNodeAtt = new XmlNode();
xNodeAtt = xDoc.CreateAttribute("id",book);
xNodeAtt.InnerXml = "10003";
objNode.Attributes.Append(xNodeAtt);
2.刪除一個元素的屬性
objNode.Attributes.Remove(xAtt);
3.增加一個子元素(Element)
XmlNode xNodeAtt = new XmlNode();
xNodeAtt = xDoc.CreateElement("book","書");
xNodeAtt.InnerXml = "10003";
objNode.Attributes.Append(xNodeAtt);
4.刪除一個子元素
objNode.RemoveChild(nodeChild);
5.替換一個子元素
objNode.ReplaceChild(newChild,oldChile);
來自:http://zhf.cnblogs.com/
相關文章
MessagePack 和System.Text.Json 序列化和反序列化性能及對比分析
這篇文章主要介紹了MessagePack 和System.Text.Json 序列化和反序列化性能及對比分析,本文結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-01-01asp.net(C#)防sql注入組件的實現(xiàn)代碼
經常要寫一些.net的程序,對于數據庫的防注入要求要比較高。這時我從網上搜了一些代碼。查看了一下主要是通過HTTPModel來進行對客戶端轉過來的數據進行處理。2009-12-12asp.net后臺動態(tài)添加JS文件和css文件的引用實現(xiàn)方法
這篇文章主要介紹了asp.net后臺動態(tài)添加JS文件和css文件的引用實現(xiàn)方法,是非常簡單實用的技巧,需要的朋友可以參考下2014-09-09Asp.net利用JQuery AJAX實現(xiàn)無刷新評論思路與代碼
Asp.net利用JQuery AJAX實現(xiàn)無刷新評論,此功能是每一個從事asp.net開發(fā)者的朋友都希望實現(xiàn)的,本文利用閑暇時間整理了一些,有需要的朋友可以參考下2012-12-12asp.net使用ODP即oracle連接方式的的防注入登錄驗證程序
這篇文章主要介紹了asp.net使用ODP即oracle連接方式的的防注入登錄驗證程序,需要的朋友可以參考下2014-05-05asp.net音頻轉換之.amr轉.mp3(利用七牛轉換法)
相信很多人都遇到amr格式的音頻文件不能直接在網頁播放的問題,有人使用QuickTime插件的輔助,下面這篇文章主要給大家介紹了asp.net音頻轉換之利用七牛轉換法將.amr格式轉.mp3格式,需要的朋友可以參考借鑒,下面來一起看看吧。2016-12-12