using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using blurxml;
namespace HeadlineManager
{
///
/// Summary description for XmlHeadlineManager.
///
public class XmlHeadlineManager
{
private XmlTextWriter xml_writer;
private StreamWriter writer;
public XmlHeadlineManager()
{
}
public void add_headlines( Headline[] headlines )
{
xml_writer = new XmlTextWriter("c:\\program files\\bsnews\\headlines.xml",null);
xml_writer.Formatting = Formatting.Indented;
xml_writer.Indentation = 4;
xml_writer.WriteStartDocument( );
xml_writer.WriteStartElement("headlines");
//xml_writer.BaseStream.Seek(0,SeekOrigin.End);
foreach( Headline h in headlines ){
xml_writer.WriteStartElement("headline");
xml_writer.WriteStartElement("title");
xml_writer.WriteString( h.Title );
xml_writer.WriteEndElement( );
xml_writer.WriteStartElement("link");
xml_writer.WriteString( h.Link );
xml_writer.WriteEndElement( );
xml_writer.WriteEndElement( );
}
xml_writer.WriteEndElement( );
xml_writer.Flush( );
xml_writer.Close( );
}
public void transform_to_html( )
{
writer = new StreamWriter("C:\\Program Files\\bsnews\\headlines.html");
RSSReader rd = new RSSReader( );
Newsfeed feed = new Newsfeed("c:\\program files\\bsnews\\headlines.xml",
"title","link","/headlines/headline");
Headline[] hlns;
hlns = rd.process_feed( feed );
// now we have all the headlines in an array. It might be good to create a way
// for this to only grab a certain number of headlines, or only headlines from
// certain sites. Also, by using RSSReader, we're limited to 15 headlines; if
// more than that are in the xml file, we'll...crash.
writer.WriteLine("
");
writer.WriteLine("");
for( int i = 0 ; i < hlns.Length ; i++ ){
writer.WriteLine(""+hlns[i].Title+"
");
}
writer.WriteLine("");
writer.Flush( );
writer.Close( );
}
}
}