中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#怎么讀取Xml文檔

發布時間:2021-07-16 01:07:33 來源:億速云 閱讀:125 作者:chen 欄目:編程語言

這篇文章主要講解了“C#怎么讀取Xml文檔”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C#怎么讀取Xml文檔”吧!

C# 操作XML之讀取Xml的作用:如果我們有現成的Xml文檔,那么,我們怎么取到我們感興趣的值呢?

還是以上邊的文檔為例,我們看到根節點下邊有兩個節點,它們的名字都是Game,那么用節點的名稱,我們是無法分辨出哪一個節點是“文明3”,哪一個節點是“帝國時代”的!!!

那么,當我想知道“文明3”的價格時,就應該使用Xml文檔對象下的SelectSingleNode方法。

C# 操作XML之讀取Xml的這個方法有兩個重載的版本

◆一個是當Xml文檔沒有命名空間時使用的,一個參數SelectSingleNode(string xpath)直接傳入xpath即可。

◆另一個是當Xml文檔有命名空間時使用的,兩個參數SelelctSingleNode(string xpath,XmlNamespaceManager nsmgr),***個參數還是xpath,第二個參數是XmlNamespaceManager對象,由于我們的Xml是有命名空間的,所以我們要使用第二種方法!首先我們要建立一個XmlNamespaceManager對象,建立的方法為XmlNamespaceManager nsmgr = new XmlNamespaceManager(new XmlDocument().NameTable);建立完對象后,我們就要開始為nsmgr增加我們的命名空間了(注意,這里加的命名空間要與Xml實際的相對應,但前輟名可不同),增加的方法如下:nsmgr.AddNamespace("v","www-shop-game"),好了,準備工作完成了,現在可以使用SelectSingleNode方法了

string price = xml.SelectSingleNode(   "v:Games/v:Game[@name='文明3']/Price",nsmgr).InnerText

請注意,如果Xml文檔里沒有明確指出當前節點的命名空間,那么當前節點的命名空間繼承其父節點的命名空間

假設我們剛才生成的Xml文檔已存在D:\Xml目錄下了,文件的名字就叫sellgame.xml,完整的代碼如下:

XmlDocument xml = new XmlDocument();  xml.Load("D:\\Xml\\sellgame.xml")        XmlNamespaceManager nsmgr =   new XmlNamespaceManager(new XmlDocument().NameTable);   //建立Xml命名空間管理器對象  nsmgr.AddNamespace("v","www-shop-game");  //增加命名空間  ,C# 操作XML之讀取Xmlstring price = xml.SelectSingleNode(  "v:Games/v:Game[@name='文明3']/Price",nsmgr).InnerText;  //取得相應的節點值

現在,如果這家軟件經銷商加增加一種新的產品:文明3的典藏版!那么我們的Xml文檔就要進行相應的擴充了:

﹤?xml version="1.0" encoding="utf-8" ?﹥  ﹤v:Games xmlns:v="www-shop-game"﹥      ﹤v:Game name="文明3" type="standard"﹥          ﹤Price﹥100﹤/Price﹥      ﹤/Game﹥  //C# 操作XML之讀取Xml    ﹤v:Game name="文明3" type="classic"﹥           ﹤Price﹥500﹤/Price﹥      ﹤/Game﹥      ﹤v:Game name="帝國時代"﹥          ﹤Price﹥200﹤/Price﹥      ﹤/Game﹥  ﹤/Games﹥

這時當我們想要取到全部與“文明3”有關的節點時,該如何進行呢?我們可以使用SelectNodes方法,該方法大體上與SelectSingleNode方法一樣,也是兩次重載,但此方法返回一個XmlNodeList對象,即一個XmlNode數組

C# 操作XML之讀取Xml的實現:當我們想要取到全部與“文明3”有關的節點時,可以這樣:

XmlNamespaceManager nsmgr =   new XmlNamespaceManager(  new XmlDocument().NameTable);      //建立Xml命名空間管理器對象  nsmgr.AddNamespace("v","www-shop-game");    //增加命名空間  ,C# 操作XML之讀取XmlXmlNodeList nodeList = xml.SelectNodes(  "v:Games/v:Game[@name='文明3']/Price",nsmgr);      //取得相應的節點數組

當我們要取節點的屬性值及節點的值時,都可以使用InnerText這個屬性。

感謝各位的閱讀,以上就是“C#怎么讀取Xml文檔”的內容了,經過本文的學習后,相信大家對C#怎么讀取Xml文檔這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巍山| 南投市| 桐柏县| 博乐市| 体育| 荣昌县| 东山县| 夏河县| 天柱县| 昔阳县| 陆河县| 米泉市| 广宗县| 会同县| 黄平县| 区。| 达孜县| 镶黄旗| 武川县| 宜城市| 盐亭县| 旬邑县| 仲巴县| 广平县| 麻栗坡县| 澳门| 永德县| 宾川县| 桐庐县| 张家口市| 武邑县| 信宜市| 金山区| 桑日县| 平邑县| 山西省| 汉寿县| 体育| 咸丰县| 龙陵县| 丰镇市|