亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? opmlprovider.cs

?? 基于.Net環境下c#實現的國人自己的Blog平臺,基于.Text的核心技術,但做了漢化以及改寫了一部分的核心代碼,值得研究學習
?? CS
字號:
#region Disclaimer/Info

///////////////////////////////////////////////////////////////////////////////////////////////////
// .Text WebLog
// 
// .Text is an open source weblog system started by Scott Watermasysk. 
// Blog: http://ScottWater.com/blog 
// RSS: http://scottwater.com/blog/rss.aspx
// Email: Dottext@ScottWater.com
//
// For updated news and information please visit http://scottwater.com/dottext and subscribe to 
// the Rss feed @ http://scottwater.com/dottext/rss.aspx
//
// On its release (on or about August 1, 2003) this application is licensed under the BSD. However, I reserve the 
// right to change or modify this at any time. The most recent and up to date license can always be fount at:
// http://ScottWater.com/License.txt
// 
// Please direct all code related questions to:
// GotDotNet Workspace: http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=e99fccb3-1a8c-42b5-90ee-348f6b77c407
// Yahoo Group http://groups.yahoo.com/group/DotText/
// 
///////////////////////////////////////////////////////////////////////////////////////////////////

#endregion

using System;
using System.Collections;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Xml.XPath;
using Dottext.Framework.Components;

namespace Dottext.Web.Admin
{
	public class OpmlProvider
	{
		protected OpmlProvider()
		{
			//
		}

		public static XmlDocument Export(LinkCollection items)
		{
			#region	DEP: writer		

			//			StringWriter sw = new StringWriter();
			//
			//			XmlWriter writer = new XmlTextWriter(sw);
			//
			//			writer.WriteStartDocument();
			////			writer.WriteAttributeString("encoding", "utf-8");		
			//
			//			writer.WriteStartElement("opml");
			//			writer.WriteElementString("head", String.Empty);
			//			writer.WriteStartElement("body");
			//
			////			foreach (OpmlItem currentItem in items)
			////			{				
			////				WriteOpmlItem(currentItem, writer);
			////			}
			//
			//			foreach (Link currentItem in items)
			//			{				
			//				writer.WriteStartElement("outline");
			//				writer.WriteAttributeString("title", currentItem.Title);
			//				writer.WriteAttributeString("description", currentItem.Title);
			//				writer.WriteAttributeString("htmlurl", currentItem.Url);
			//				writer.WriteAttributeString("xmlurl", currentItem.Rss);
			//				writer.WriteEndElement();
			//			}
			//
			//			writer.WriteEndElement(); // body
			//			writer.WriteEndElement(); // opml
			//			writer.WriteEndDocument();
			//			
			//			writer.Close();

			#endregion

			XmlDocument doc = new XmlDocument();
			XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "utf-8", null);
			doc.AppendChild(declaration);

			XmlNode rootNode = doc.CreateElement("opml");
			doc.AppendChild(rootNode);

			XmlNode headNode = doc.CreateElement("head");
			rootNode.AppendChild(headNode);

			XmlNode bodyNode = doc.CreateElement("body");
			rootNode.AppendChild(bodyNode);

			foreach (Link currentItem in items)
			{
				XmlNode outline = doc.CreateElement("outline");

				XmlAttribute title = doc.CreateAttribute("title");
				title.Value = currentItem.Title;
				outline.Attributes.Append(title);

				XmlAttribute description = doc.CreateAttribute("description");
				description.Value = currentItem.Title;
				outline.Attributes.Append(description);

				XmlAttribute htmlurl = doc.CreateAttribute("htmlurl");
				htmlurl.Value = currentItem.Url;
				outline.Attributes.Append(htmlurl);

				XmlAttribute xmlurl = doc.CreateAttribute("xmlurl");
				xmlurl.Value = currentItem.Rss;
				outline.Attributes.Append(xmlurl);

				bodyNode.AppendChild(outline);
			}

			return doc;

			//doc.LoadXml(sw.ToString());
			//return doc.CreateNavigator();
		}

		public static void WriteOpmlItem(OpmlItem item, XmlWriter writer)
		{
			item.RenderOpml(writer);

			foreach (OpmlItem childItem in item.ChildItems)
				WriteOpmlItem(childItem, writer);
		}

		public static OpmlItemCollection Import(Stream fileStream)
		{
			OpmlItemCollection _currentBatch = new OpmlItemCollection();

			XmlReader reader = new XmlTextReader(fileStream);
			XPathDocument doc = new XPathDocument(reader);
			XPathNavigator nav = doc.CreateNavigator();

			XPathNodeIterator outlineItems = nav.Select("/opml/body/outline");

			while (outlineItems.MoveNext())
				_currentBatch.AddRange(DeserializeItem(outlineItems.Current));

			return _currentBatch;
		}

		public static OpmlItem[] DeserializeItem(XPathNavigator nav)
		{
			ArrayList items = new ArrayList();

			if (nav.HasAttributes)
			{
				string title = nav.GetAttribute("title", "");
				if (String.Empty == title)
					title = nav.GetAttribute("text", "");

				string description = nav.GetAttribute("description", "");

				string htmlUrl = nav.GetAttribute("htmlurl", "");
				if (String.Empty == htmlUrl)
					htmlUrl = nav.GetAttribute("htmlUrl", "");

				string xmlUrl = nav.GetAttribute("xmlurl", "");
				if (String.Empty == xmlUrl)
					xmlUrl = nav.GetAttribute("xmlUrl", "");

				OpmlItem currentItem = null;
				if (String.Empty != title && String.Empty != htmlUrl)
					currentItem = new OpmlItem(title, description, xmlUrl, htmlUrl);

				if (null != currentItem)
					items.Add(currentItem);
			}

			if (nav.HasChildren)
			{
				XPathNodeIterator childItems = nav.SelectChildren("outline", "");
				while (childItems.MoveNext())
				{
					OpmlItem[] children = DeserializeItem(childItems.Current);
					if (null != children)
						items.InsertRange(items.Count, children);
				}
			}

			OpmlItem[] result = new OpmlItem[items.Count];
			items.CopyTo(result);
			return result;
		}
	}

	[Serializable, XmlRoot(ElementName = "outline", IsNullable=true)]
	public class OpmlItem
	{
		private string _title;
		private string _description;
		private string _xmlurl;
		private string _htmlurl;
		private OpmlItemCollection _childItems;

		public OpmlItem()
		{
			_childItems = new OpmlItemCollection(0);
		}

		public OpmlItem(string title, string description, string xmlUrl, string htmlUrl) : this()
		{
			_title = title;
			_description = description;
			_xmlurl = xmlUrl;
			_htmlurl = htmlUrl;
		}

		[XmlAttribute("title")]
		public string Title
		{
			get { return _title; }
			set { _title = value; }
		}

		[XmlAttribute("description")]
		public string Description
		{
			get { return _description; }
			set { _description = value; }
		}

		[XmlAttribute("xmlurl")]
		public string XmlUrl
		{
			get { return _xmlurl; }
			set { _xmlurl = value; }
		}

		[XmlAttribute("htmlurl")]
		public string HtmlUrl
		{
			get { return _htmlurl; }
			set { _htmlurl = value; }
		}

		public OpmlItemCollection ChildItems
		{
			get { return _childItems; }
			set { _childItems = value; }
		}

		internal void RenderOpml(XmlWriter writer)
		{
			writer.WriteStartElement("outline");
			writer.WriteAttributeString("title", this.Title);
			writer.WriteAttributeString("description", this.Description);
			writer.WriteAttributeString("htmlurl", this.HtmlUrl);
			writer.WriteAttributeString("xmlurl", this.XmlUrl);
			writer.WriteEndElement();
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合在线观看色| 国产精品456| 亚洲小说春色综合另类电影| 亚洲欧洲制服丝袜| 一区二区视频免费在线观看| 亚洲少妇中出一区| 亚洲三级免费观看| 一区二区三区美女| 亚洲国产一区视频| 日韩精品五月天| 蜜臀va亚洲va欧美va天堂| 久色婷婷小香蕉久久| 国产最新精品免费| 国产精品一二一区| 成人黄色av网站在线| 99精品国产一区二区三区不卡| heyzo一本久久综合| 91在线国产福利| 欧美性猛片xxxx免费看久爱| 制服丝袜亚洲精品中文字幕| 日韩视频一区二区| 久久久久国产成人精品亚洲午夜 | 久久久一区二区| 久久久久久免费| 国产精品午夜春色av| 一区二区三区中文在线| 天天色综合天天| 国产一区二区三区精品视频 | 久久久综合激的五月天| 国产精品伦理一区二区| 亚洲va国产va欧美va观看| 免费xxxx性欧美18vr| 国产成人免费视频| 91成人在线观看喷潮| 欧美一区二区三区视频在线| 欧美国产欧美亚州国产日韩mv天天看完整| 中文字幕一区二区视频| 亚洲午夜精品一区二区三区他趣| 美女被吸乳得到大胸91| 成人av免费观看| 欧美剧在线免费观看网站 | 亚洲小少妇裸体bbw| 久草中文综合在线| 色综合色综合色综合| 日韩亚洲欧美成人一区| 国产调教视频一区| 亚洲不卡一区二区三区| 国产成人在线影院| 欧美疯狂做受xxxx富婆| 日本一区二区视频在线观看| 亚洲线精品一区二区三区| 国产乱码精品一区二区三| 欧美影院一区二区| 久久久综合精品| 亚洲国产一区视频| 成人禁用看黄a在线| 欧美精品久久天天躁| 国产人成亚洲第一网站在线播放| 亚洲一区二区欧美日韩| 国产尤物一区二区| 在线一区二区三区做爰视频网站| 久久嫩草精品久久久精品一| 亚洲一区二区三区四区五区中文| 国产福利精品一区| 在线成人免费视频| 亚洲日本一区二区| 国产成人免费视频精品含羞草妖精| 欧美肥大bbwbbw高潮| 亚洲欧洲综合另类| 国产99久久久精品| 精品日韩成人av| 视频一区在线播放| 91免费视频网址| 国产免费久久精品| 久久福利视频一区二区| 欧美三电影在线| 亚洲人成网站精品片在线观看| 国产麻豆9l精品三级站| 91精品国产麻豆国产自产在线| 亚洲欧美日韩国产另类专区| 成人综合婷婷国产精品久久蜜臀| 日韩一区二区三区三四区视频在线观看| 亚洲色图色小说| 成人黄色软件下载| 欧美国产欧美综合| 国产成人午夜片在线观看高清观看 | 欧美日韩亚洲综合| 亚洲精品国久久99热| av在线一区二区三区| 欧美国产亚洲另类动漫| 国产盗摄女厕一区二区三区| 久久综合999| 久久国产精品第一页| 在线综合视频播放| 日本欧美久久久久免费播放网| 欧美日韩亚洲综合在线| 亚洲大片一区二区三区| 欧美色成人综合| 日韩精品免费视频人成| 这里只有精品视频在线观看| 视频一区二区欧美| 在线综合+亚洲+欧美中文字幕| 丝袜国产日韩另类美女| 91麻豆精品国产91久久久久| 婷婷六月综合亚洲| 欧美一级片在线看| 久久不见久久见免费视频1| 精品免费一区二区三区| 精品一区二区三区在线视频| 精品处破学生在线二十三| 激情另类小说区图片区视频区| 久久综合九色综合欧美就去吻| 韩国在线一区二区| 国产欧美在线观看一区| 99热这里都是精品| 亚洲免费电影在线| 欧美三级电影在线看| 日本麻豆一区二区三区视频| 欧美mv日韩mv国产| 国产成人h网站| 亚洲蜜桃精久久久久久久| 在线免费不卡视频| 美女一区二区视频| 2023国产精品视频| av亚洲精华国产精华| 一区二区三区高清| 7777精品伊人久久久大香线蕉完整版 | 黄页视频在线91| 中文字幕av一区二区三区高 | 欧美人牲a欧美精品| 美女免费视频一区| 中文子幕无线码一区tr| 91麻豆自制传媒国产之光| 视频一区二区不卡| 久久精品视频一区二区| 色婷婷av一区二区三区之一色屋| 天堂一区二区在线| 久久久久久久av麻豆果冻| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲欧洲一区二区三区| 欧美日韩国产经典色站一区二区三区| 免费成人在线视频观看| 国产精品国产自产拍高清av| 欧美日韩国产免费一区二区 | 精品国产第一区二区三区观看体验| 国产剧情一区二区| 亚洲一区二区五区| 亚洲精品在线观看视频| 色一情一乱一乱一91av| 蓝色福利精品导航| 一区二区在线免费观看| 欧美大片国产精品| 91麻豆精品秘密| 精久久久久久久久久久| 亚洲精选一二三| 久久久久免费观看| 欧美日本视频在线| av午夜一区麻豆| 国内精品自线一区二区三区视频| 亚洲欧美日韩精品久久久久| 2020国产精品| 欧美四级电影网| 成人黄色网址在线观看| 欧美aaa在线| 亚洲三级在线播放| 国产亚洲欧美日韩日本| 精品视频在线免费| 99re这里只有精品视频首页| 久久综合综合久久综合| 亚洲国产另类精品专区| 18成人在线观看| 久久精品夜色噜噜亚洲a∨| 这里只有精品99re| 欧美午夜影院一区| 成人免费va视频| 国产一区二三区好的| 日韩国产在线一| 亚洲国产美国国产综合一区二区| 国产精品毛片久久久久久| 精品奇米国产一区二区三区| 欧美日韩免费高清一区色橹橹 | 99国内精品久久| 国产一区美女在线| 蜜臀国产一区二区三区在线播放| 亚洲一区电影777| 综合电影一区二区三区| 中文字幕免费一区| 久久九九全国免费| 337p日本欧洲亚洲大胆色噜噜| 8x福利精品第一导航| 欧美日韩成人综合在线一区二区| 91蜜桃网址入口| 91在线一区二区三区| av一区二区三区| 99视频在线观看一区三区| 成人app网站| 99免费精品视频| 成人国产精品视频| 成人avav影音| caoporn国产精品|