程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#解析帶前綴的Xml節點內容

C#解析帶前綴的Xml節點內容

編輯:C#入門知識

一般的xml文件相信大家都會解析了,但是遇到有命名空間的帶前綴的xml,對於新手可能會有點問題。我這裡在論壇解答的時候就遇到過一題,見怎麼獲取XML節點裡面的內容,在線求教。這裡給大家演示一下。   他的結構是這樣子的:   [plain]   <?xml version="1.0" encoding="utf-8" ?>   <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.jiangsuedu.net/justone/">     <SOAP-ENV:Header>       <TransactionID>110000000001</TransactionID>       <ServiceType>/sms/mt</ServiceType>     </SOAP-ENV:Header>     <SOAP-ENV:Body>       <GateWayID>YNMC</GateWayID>       <DstID>15125664368</DstID>       <SrcID>099879</SrcID>       <FeeID>15125664368</FeeID>       <LinkID/>       <MsgContent>哈哈</MsgContent>       <ServiceID>AYN3913101</ServiceID>       <MsgID>1234</MsgID>       <CommitTime>201311130101022</CommitTime>     </SOAP-ENV:Body>   </SOAP-ENV:Envelope>     比如我們要取MsgContent節點下的內容,我們直接去取是會報錯的。比如: [csharp]   XmlDocument doc = new XmlDocument();   doc.Load("test.xml");   string value = doc.SelectSingleNode("/SOAP-ENV:Envelope/SOAP-ENV:Body/MsgContent").InnerText;   這裡value會發生異常,如圖:   根據錯誤提示,已經提醒我們需要命名空間管理器。   [csharp]   XmlDocument doc = new XmlDocument();   doc.Load("test.xml");      XmlElement root = doc.DocumentElement;   string nameSpace = root.NamespaceURI;   XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); ;   nsmgr.AddNamespace("SOAP-ENV", nameSpace);      string value = doc.SelectSingleNode("/SOAP-ENV:Envelope/SOAP-ENV:Body/MsgContent", nsmgr).InnerText;   Console.WriteLine(value);//輸出:哈哈   這時我們加上了XmlNamespaceManage進行處理,成功的獲取到了我們想要的內容。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved