最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#導航器Xpath與XPathNavigator類

 更新時間:2022年06月07日 08:20:04   作者:springsnow  
這篇文章介紹了C#導航器Xpath與XPathNavigator類,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

XPathNavigator類包含移動和選擇XML所需元素的所有方法。

一、創(chuàng)建:CreateNavigator

1、XPathNavigator類,如果是從XPathDocument中創(chuàng)建,則是只讀的,只能瀏覽數據;

XPathDocument doc = new XPathDocument("./books.xml");
XPathNavigator nav = ((IXPathNavigable)doc).CreateNavigator();

2、XPathNavigator類,如果是從XmlDocument中創(chuàng)建,則可以編輯文檔;

XmlDocument doc = new XmlDocument(); 
doc.Load("./books.xml"); 
XPathNavigator nav2 = doc.CreateNavigator();

二、讀?。篠elect()

  • 使用Select()方法通過XPath語句查詢,得到XPathNodeIterator對象;
  • 遍歷XPathNodeIterator迭代器,MoveNext()方法移動下一個節(jié)點;Current屬性表示當前節(jié)點;
//查詢bookstore的子元素book中genre屬性值為novel的所有節(jié)點
XPathNodeIterator iter = nav.Select("/bookstore/book[@genre='novel']");
while (iter.MoveNext())
{
    //迭代所有子代節(jié)點
    XPathNodeIterator newIter = iter.Current.SelectDescendants(XPathNodeType.Element, false);
    while (newIter.MoveNext())
    {
        Console.WriteLine(newIter.Current.Name+ " : " +newIter.Current.Value);
    }
}

三、計算:Evaluate

使用Evaluate()方法計算表達式的值;

//統計圖書總價   
Console.WriteLine("Total price = {0}", nav.Evaluate("sum(bookstore/book/price)"));

四、編輯

插入節(jié)點:先檢查CanEdit屬性是否為true,再使用InsertAfter()方法插入新節(jié)點。

XmlDocument doc = new XmlDocument();
doc.Load("./books.xml");
XPathNavigator nav2 = doc.CreateNavigator();
//判斷是否可編輯
if (nav2.CanEdit)
{
    XPathNodeIterator iter = nav2.Select("bookstore/book/price");
    while (iter.MoveNext())
    {
        //在當前節(jié)點之后插入新節(jié)點
        iter.Current.InsertAfter("5");
    }
}
doc.Save("./newBooks.xml");

五、轉換XmlReader ,XmlWriter

通過XPathNavigator轉換為XmlReader ,XmlWriter讀寫數據

//讀:
XmlReader reader=nav.ReadSubtree();
while(reader.Read())
{
   Console.Write(reader.ReadOuterXml());
}

//寫:
XmlWriter writer=XmlWriter.Create("./1.xml");
nav.WriteSubtree(writer);
writer.Close();

到此這篇關于C#導航器Xpath與XPathNavigator類的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C#使用WebSocket與網頁實時通信的實現示例

    C#使用WebSocket與網頁實時通信的實現示例

    本文主要介紹了C#使用WebSocket與網頁實時通信的實現示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • C#讀取本地網絡配置信息全攻略分享

    C#讀取本地網絡配置信息全攻略分享

    在當今數字化時代,網絡已深度融入我們生活與工作的方方面面,對于軟件開發(fā)而言,掌握本地計算機的網絡配置信息顯得尤為關鍵,而在 C# 編程的世界里,我們又該如何巧妙地讀取這些至關重要的本地網絡配置信息呢?接下來,就讓我們一同踏上探索之旅
    2025-01-01
  • C# webservice接口編寫、發(fā)布與測試

    C# webservice接口編寫、發(fā)布與測試

    這篇文章主要介紹了C# webservice接口編寫、發(fā)布與測試,文章通過圖文結合的方式給大家介紹的非常詳細,對大家的學習或共組有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • C#制作多線程處理強化版網絡爬蟲

    C#制作多線程處理強化版網絡爬蟲

    這篇文章主要介紹了C#制作多線程處理強化版網絡爬蟲的相關代碼,有想學習C#多線程編程的小伙伴可以參考下
    2016-09-09
  • C#常用多線程(線程同步,事件觸發(fā),信號量,互斥鎖,共享內存,消息隊列)

    C#常用多線程(線程同步,事件觸發(fā),信號量,互斥鎖,共享內存,消息隊列)

    這篇文章主要介紹了C#常用多線程(線程同步,事件觸發(fā),信號量,互斥鎖,共享內存,消息隊列),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 微信開放平臺之網站授權微信登錄功能

    微信開放平臺之網站授權微信登錄功能

    本文通過.net實現的微信開放平臺之網站授權微信登錄功能,需要的小伙伴一起看看吧
    2015-09-09
  • C#中abstract的用法詳解

    C#中abstract的用法詳解

    abstract可以用來修飾類,方法,屬性,索引器和時間,這里不包括字段. 使用abstrac修飾的類,該類只能作為其他類的基類,不能實例化,而且abstract修飾的成員在派生類中必須全部實現,不允許部分實現,否則編譯異常
    2016-12-12
  • 利用C#編寫Linux守護進程實例代碼

    利用C#編寫Linux守護進程實例代碼

    如今的編程是一場程序員和上帝的競賽,程序員要開發(fā)出更大更好、傻瓜都會用到軟件,下面這篇文章主要給大家介紹了關于利用C#編寫Linux守護進程的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2018-01-01
  • C#加密解密類實例程序

    C#加密解密類實例程序

    這篇文章主要介紹了C#加密解密類實例程序,大家參考使用吧
    2013-12-12
  • 快速學習C# 設計模式之職責鏈模式

    快速學習C# 設計模式之職責鏈模式

    這篇文章主要介紹了C# 設計模式之職責鏈模式的的相關資料,文中代碼非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06

最新評論

米林县| 泊头市| 蓝田县| 上思县| 利津县| 青神县| 田林县| 布拖县| 松潘县| 嘉义县| 前郭尔| 黄大仙区| 奉新县| 施秉县| 许昌市| 台前县| 牡丹江市| 全椒县| 奇台县| 永胜县| 大足县| 连平县| 瑞昌市| 望都县| 甘肃省| 祁阳县| 东台市| 旅游| 德庆县| 绥芬河市| 太保市| 洛阳市| 乌恰县| 饶平县| 二手房| 商城县| 固安县| 信阳市| 沙湾县| 庆元县| 永川市|