示例#1
0
        /// <summary>
        /// Procedure to read in an xmltv file, storing programs as they are found
        /// </summary>
        /// <param name="XMLTVfilename">The filename to open</param>
        static void processXMLTV(string XMLTVfilename)
        {
            logger.Debug("Processing: " + XMLTVfilename);

            XmlTextReader xmlReader = new XmlTextReader(XMLTVfilename);


            xmlReader.Read();        // get the Root Node

            while (xmlReader.Read()) // read to end of file
            {
                // only interested in programme nodes
                if (xmlReader.Name == "programme")
                {
                    // create the program
                    TVProgramme newProg = new TVProgramme(progs.Count + 1, System.Guid.NewGuid().ToString("N"));
                    newProg.startTime = DateTimefromXMLTVNZFormat(xmlReader.GetAttribute("start").Trim());
                    newProg.stopTime  = DateTimefromXMLTVNZFormat(xmlReader.GetAttribute("stop").Trim());
                    newProg.channel   = xmlReader.GetAttribute("channel").Trim();

                    // horrible way of recording when we are at the end of the programme XML tree
                    int depth = xmlReader.Depth;

                    xmlReader.Read();
                    while (xmlReader.Depth > depth) // keep going while we are 'inside' the program in XML
                    {
                        // only interested in elements for now
                        if (xmlReader.NodeType == XmlNodeType.Element)
                        {
                            switch (xmlReader.Name.ToString())
                            {
                            case "title":
                                newProg.title = xmlReader.ReadString().Trim();
                                break;

                            case "rating":
                                newProg.rating = xmlReader.ReadString().Trim();
                                break;

                            case "desc":
                                newProg.description = xmlReader.ReadString().Trim().Replace('"', ' ');
                                break;
                            }
                        }
                        xmlReader.Read(); // get the next element within the program
                    }
                    progs.Add(newProg);   // remember for later
                }
            }

            // we are done
            xmlReader.Close();
        }
示例#2
0
        /// <summary>
        /// Procedure to read in an xmltv file, storing programs as they are found
        /// </summary>
        /// <param name="XMLTVfilename">The filename to open</param>
        static void processXMLTV(string XMLTVfilename)
        {
            logger.Debug("Processing: " + XMLTVfilename);

            XmlTextReader xmlReader = new XmlTextReader(XMLTVfilename);

            xmlReader.Read(); // get the Root Node

            while (xmlReader.Read())  // read to end of file
            {
                // only interested in programme nodes
                if (xmlReader.Name == "programme")
                {
                    // create the program
                    TVProgramme newProg = new TVProgramme(progs.Count+1, System.Guid.NewGuid().ToString("N"));
                    newProg.startTime = DateTimefromXMLTVNZFormat(xmlReader.GetAttribute("start").Trim());
                    newProg.stopTime = DateTimefromXMLTVNZFormat(xmlReader.GetAttribute("stop").Trim());
                    newProg.channel = xmlReader.GetAttribute("channel").Trim();

                    // horrible way of recording when we are at the end of the programme XML tree
                    int depth = xmlReader.Depth;

                    xmlReader.Read();
                    while (xmlReader.Depth > depth) // keep going while we are 'inside' the program in XML
                    {
                        // only interested in elements for now
                        if (xmlReader.NodeType == XmlNodeType.Element)
                        {

                            switch (xmlReader.Name.ToString())
                            {
                                case "title":
                                    newProg.title = xmlReader.ReadString().Trim();
                                    break;
                                case "rating":
                                    newProg.rating = xmlReader.ReadString().Trim();
                                    break;
                                case "desc":
                                    newProg.description = xmlReader.ReadString().Trim().Replace('"',' ');
                                    break;
                            }
                        }
                        xmlReader.Read(); // get the next element within the program
                    }
                    progs.Add(newProg); // remember for later

                }

            }

            // we are done
            xmlReader.Close();
        }