亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#導(dǎo)航器Xpath與XPathNavigator類

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

XPathNavigator類包含移動(dòng)和選擇XML所需元素的所有方法。

一、創(chuàng)建:CreateNavigator

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

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();

二、讀取:Select()

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

三、計(jì)算:Evaluate

使用Evaluate()方法計(jì)算表達(dá)式的值;

//統(tǒng)計(jì)圖書總價(jià)   
Console.WriteLine("Total price = {0}", nav.Evaluate("sum(bookstore/book/price)"));

四、編輯

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

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())
    {
        //在當(dāng)前節(jié)點(diǎn)之后插入新節(jié)點(diǎn)
        iter.Current.InsertAfter("5");
    }
}
doc.Save("./newBooks.xml");

五、轉(zhuǎn)換XmlReader ,XmlWriter

通過(guò)XPathNavigator轉(zhuǎn)換為XmlReader ,XmlWriter讀寫數(shù)據(jù)

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

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

到此這篇關(guān)于C#導(dǎo)航器Xpath與XPathNavigator類的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論