📄 rss.cs
字号:
/*
* Rss.cs @Microsoft Visual Studio 2008 <.NET Framework 3.5>
* AfritXia
* 2007-04-01
*
* Copyright(c) http://www.AfritXia.NET/
*
*/
using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Xml;
namespace NET.AfritXia.RssFoundation
{
/// <summary>
/// RSS 聚合功能类
/// </summary>
public sealed class Rss
{
// rss 根标记
private RssRootTag m_root = null;
// Item 列表
private IList m_objectItemList = null;
// RSS 项目转换器
private IRssItemTagConverter m_itemTagConverter = null;
#region 类构造器
/// <summary>
/// 类默认构造器
/// </summary>
internal Rss()
{
// 根标记
this.m_root = new RssRootTag();
// /.version
this.m_root.Version = "2.0";
// /channel/generator
this.m_root.Channel.Generator = "NET.AfritXia.RssFoundation";
}
#endregion
/// <summary>
/// 获取 rss 根标记
/// </summary>
public RssRootTag Root
{
get
{
return m_root;
}
}
/// <summary>
/// 设置或获取项目转换器
/// </summary>
public IRssItemTagConverter ItemTagConverter
{
internal set
{
this.m_itemTagConverter = value;
}
get
{
return this.m_itemTagConverter;
}
}
/// <summary>
/// 添加一组 item 数据对象
/// </summary>
/// <param name="enumerable"></param>
public void AddDataItems(IEnumerable enumerable)
{
for (IEnumerator enumerator = enumerable.GetEnumerator(); enumerator.MoveNext();
this.AddDataItem(enumerator.Current)) ;
}
/// <summary>
/// 添加一个 item 数据对象
/// </summary>
/// <param name="value"></param>
public void AddDataItem(object value)
{
if (this.ItemTagConverter == null)
throw new NullReferenceException("转换器为空 ( ItemTagConverter is null )");
if (this.m_objectItemList == null)
this.m_objectItemList = new ArrayList();
// 将 value 转换为 item 标记
this.Root.Channel.ItemList.Add(this.ItemTagConverter.Convert(value));
}
/// <summary>
/// 清除 item 数据集合
/// </summary>
public void ClearDataItems()
{
if (this.m_objectItemList == null)
return;
this.m_objectItemList.Clear();
}
/// <summary>
/// 将 XML 字符串保存到流中
/// </summary>
/// <param name="output"></param>
public void WriteXmlContent(Stream output)
{
if (output == null)
return;
// XML 写出流设置类
XmlWriterSettings xwSettings = new XmlWriterSettings();
// UTF-8
xwSettings.Encoding = Encoding.UTF8;
// 缩进元素
xwSettings.Indent = true;
// 创建 XML 文本写出器
XmlWriter writer = XmlWriter.Create(output, xwSettings);
// 输出 XML
this.Root.WriteXml(writer);
writer.Flush();
writer.Close();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -