這篇文章主要講解了“C#怎么讀取Xml文檔”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C#怎么讀取Xml文檔”吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名申請、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、黃陵網(wǎng)站維護、網(wǎng)站推廣。
C# 操作XML之讀取Xml的作用:如果我們有現(xiàn)成的Xml文檔,那么,我們怎么取到我們感興趣的值呢?
還是以上邊的文檔為例,我們看到根節(jié)點下邊有兩個節(jié)點,它們的名字都是Game,那么用節(jié)點的名稱,我們是無法分辨出哪一個節(jié)點是“文明3”,哪一個節(jié)點是“帝國時代”的?。?!
那么,當(dāng)我想知道“文明3”的價格時,就應(yīng)該使用Xml文檔對象下的SelectSingleNode方法。
C# 操作XML之讀取Xml的這個方法有兩個重載的版本
◆一個是當(dāng)Xml文檔沒有命名空間時使用的,一個參數(shù)SelectSingleNode(string xpath)直接傳入xpath即可。
◆另一個是當(dāng)Xml文檔有命名空間時使用的,兩個參數(shù)SelelctSingleNode(string xpath,XmlNamespaceManager nsmgr),***個參數(shù)還是xpath,第二個參數(shù)是XmlNamespaceManager對象,由于我們的Xml是有命名空間的,所以我們要使用第二種方法!首先我們要建立一個XmlNamespaceManager對象,建立的方法為XmlNamespaceManager nsmgr = new XmlNamespaceManager(new XmlDocument().NameTable);建立完對象后,我們就要開始為nsmgr增加我們的命名空間了(注意,這里加的命名空間要與Xml實際的相對應(yīng),但前輟名可不同),增加的方法如下:nsmgr.AddNamespace("v","www-shop-game"),好了,準(zhǔn)備工作完成了,現(xiàn)在可以使用SelectSingleNode方法了
string price = xml.SelectSingleNode( "v:Games/v:Game[@name='文明3']/Price",nsmgr).InnerText
請注意,如果Xml文檔里沒有明確指出當(dāng)前節(jié)點的命名空間,那么當(dāng)前節(jié)點的命名空間繼承其父節(jié)點的命名空間
假設(shè)我們剛才生成的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; //取得相應(yīng)的節(jié)點值
現(xiàn)在,如果這家軟件經(jīng)銷商加增加一種新的產(chǎn)品:文明3的典藏版!那么我們的Xml文檔就要進行相應(yīng)的擴充了:
﹤?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﹥
這時當(dāng)我們想要取到全部與“文明3”有關(guān)的節(jié)點時,該如何進行呢?我們可以使用SelectNodes方法,該方法大體上與SelectSingleNode方法一樣,也是兩次重載,但此方法返回一個XmlNodeList對象,即一個XmlNode數(shù)組
C# 操作XML之讀取Xml的實現(xiàn):當(dāng)我們想要取到全部與“文明3”有關(guān)的節(jié)點時,可以這樣:
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); //取得相應(yīng)的節(jié)點數(shù)組
當(dāng)我們要取節(jié)點的屬性值及節(jié)點的值時,都可以使用InnerText這個屬性。
感謝各位的閱讀,以上就是“C#怎么讀取Xml文檔”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C#怎么讀取Xml文檔這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
網(wǎng)站欄目:C#怎么讀取Xml文檔
URL鏈接:http://www.rwnh.cn/article42/ghcchc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、App設(shè)計、外貿(mào)網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、搜索引擎優(yōu)化、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)