1,讀取Rss訂閱XML文件:讀取線上的XML
定南網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; namespace XmlTest.com { ////// 獲得線上的Rss信息 / XML格式的 /// 訂閱信息 /// public class LoadOnlineXml { private readonly string rssPath; private readonly string encoding; ////// /// /// Rss地址 , 如 : http://news.163.com/special/00011K6L/rss_newstop.xml /// 此Rss的編碼格式 public LoadOnlineXml(string rssPath , string encoding ) { this.rssPath = rssPath; this.encoding = encoding; } ////// 打印目標(biāo)Rss /// public void writeRss() { WebClient web = new WebClient(); Stream stream = web.OpenRead(this.rssPath); StreamReader reader = new StreamReader(stream, Encoding.GetEncoding(this.encoding)); string rssText = reader.ReadToEnd(); Console.WriteLine(rssText); stream.Close(); reader.Close(); } } }
2,讀取XML
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace XmlTest.com { ////// 讀取XML /// public class ReaderXml { private readonly string xmlPath; ////// /// /// XML的地址 public ReaderXml(string xmlPath) { this.xmlPath = xmlPath; } ////// 讀XML信息 /// public void readXML() { string str = ""; XmlReader reader = XmlReader.Create( this.xmlPath ); int i = 0 , j = 0; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { str += "節(jié)點(diǎn)名 : " + reader.Name + Environment.NewLine; str += ", 節(jié)點(diǎn)類型 : " + reader.NodeType + Environment.NewLine; str += ", 節(jié)點(diǎn)深度 : " + reader.Depth + Environment.NewLine; if (reader.HasAttributes) // 是否存在屬性 { for (i = 0, j = reader.AttributeCount; i < j; i += 1) { reader.MoveToAttribute(i); str += " 屬性 : " + reader.Name + " 值為 : " + reader.Value + Environment.NewLine; } } } else if ( reader.NodeType == XmlNodeType.Text ) { if (reader.HasValue) //是否存在文本值 { str += ", 節(jié)點(diǎn)的文本值 : " + reader.Value + Environment.NewLine; } } else { } } reader.Close(); Console.WriteLine(str); } } }
3,創(chuàng)建一個(gè)XML文件
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Xml; namespace XmlTest.com { ////// 模擬沒有xml的時(shí)候重建一個(gè)XML文件 /// public class XmlWriterDefault { private readonly string xmlpath; ////// /// /// xml路徑 public XmlWriterDefault(string xmlpath) { this.xmlpath = xmlpath; } ////// 編寫一個(gè)基本的XML文件 /// /// 編碼格式 public void writerDefault( Encoding encoding ) { if ( !File.Exists( this.xmlpath ) ) { XmlWriterSettings writer = new XmlWriterSettings(); writer.Encoding = encoding; using( XmlWriter w = XmlWriter.Create( this.xmlpath , writer )) { w.WriteStartElement("fristElement"); w.WriteAttributeString("name" , "Ainy"); w.WriteAttributeString("gender", "male"); w.WriteEndElement(); w.Flush(); } } } } }
4 , 核心操作
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace XmlTest.com { ////// 對XML信息的增,刪,改 /// public class XmlMainHandler { private readonly string xmlPath; ////// /// /// 目標(biāo)XML的地址 public XmlMainHandler(string xmlPath) { this.xmlPath = xmlPath; } ////// 增加一個(gè)屬性 /// /// 屬性名稱 /// 屬性值 public void addAttribute(string name, string value , string targetName ) { XmlDocument xdoc = new XmlDocument(); xdoc.Load(this.xmlPath); foreach (XmlElement xElement in xdoc.DocumentElement.ChildNodes) { foreach (XmlElement xE in xElement.ChildNodes) { Console.WriteLine("屬性值 : " + xE.GetAttribute("name")); if (xE.GetAttribute("name") == targetName) { XmlAttribute xA = xdoc.CreateAttribute(name); xA.Value = value; xE.Attributes.Append(xA); break; } } } xdoc.Save(this.xmlPath); } ////// 刪除一個(gè)屬性 /// /// public void removeAttribute(string AttributeName) { XmlDocument xdoc = new XmlDocument(); xdoc.Load(this.xmlPath); XmlNode targetNote = xdoc.SelectSingleNode(@"friends/friend/describe"); //!important : 第一次找到的friends/friend/describe , 如果沒有找到,返回null if (targetNote != null) { // 定義一個(gè)屬性 if (targetNote.Attributes[AttributeName] != null) { targetNote.Attributes.Remove(targetNote.Attributes[AttributeName]); } else { Console.WriteLine("此節(jié)點(diǎn)沒有'{0}'屬性", AttributeName); } } else { Console.WriteLine("沒有找到 friends/friend/describe 請檢查"); } xdoc.Save(this.xmlPath); } ////// 修改一個(gè)屬性 /// /// /// public void editorAttribute(string AttributeName, string value) { XmlDocument xdoc = new XmlDocument(); xdoc.Load(this.xmlPath); XmlNodeList targetList = xdoc.SelectNodes(@"friends/friend/base"); foreach (XmlNode target in targetList) { if (target.Attributes[AttributeName] != null) { if (target.Attributes[AttributeName].Value == "eisa") { target.Attributes[AttributeName].Value = "eisa-" + value; target.InnerText = "XXX"; //加一個(gè)Text xdoc.Save(this.xmlPath); return; } } } Console.WriteLine("修改屬性 失敗"); } } }
附件 : XML friends.xml
XXX my --- my ****
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。