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( ); } } }