ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/xmltv_parser/trunk/libxmltv/Core/XMLTV_PARSER.cs
(Generate patch)

Comparing trunk/libxmltv/Core/XMLTV_PARSER.cs (file contents):
Revision 22 by william, Thu Mar 7 10:20:50 2013 UTC vs.
Revision 23 by william, Thu Mar 7 11:08:48 2013 UTC

# Line 1 | Line 1
1 < ´╗┐using System;
1 > ´╗┐#define XMLTV_PARSER_TESTING // when defined will allow calls to be made to _imp_TestParse()
2 > using System;
3   using System.Collections.Generic;
4   using System.Linq;
5   using System.Text;
6   using libxmltv.Interfaces;
7 + using System.Diagnostics;
8 + using System.Xml.Linq;
9  
10   namespace libxmltv.Core
11   {
12      internal class XMLTV_PARSER : IXMLTV_PARSER
13      {
14 +        
15          public XMLTV_PARSER(object xmltv)
16          {
17              IXMLTV_LOADER _xmltv;
# Line 16 | Line 20 | namespace libxmltv.Core
20          }
21          #region IXMLTV_PARSER members
22          public IXMLTV_LOADER XMLTV_LOADER { get; private set; }
23 +        public void TestParse() { _imp_TestParse(); }
24 +        #endregion
25 +
26 +        #region Parser Testing Methods
27 +        [Conditional("XMLTV_PARSER_TESTING")]
28 +        private void _imp_TestParse()
29 +        {
30 +            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Running XML_PARSER Test");
31 +            var doc = XMLTV_LOADER.XmlDoc;
32 +            ParseRootElements(doc);
33 +            ParseChannels(doc);
34 +            ParsePrograms(doc);
35 +        }
36 +        [Conditional("XMLTV_PARSER_TESTING")]
37 +        private void ParseRootElements(XDocument doc)
38 +        {
39 +            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Parseing Root Data");            
40 +            Debug.Assert(doc.Root.Name == XMLTV_CONSTANTS.ROOT_ELEMENT, string.Format("Expected Root Element: '{0}' but read: '{1}'", XMLTV_CONSTANTS.ROOT_ELEMENT, doc.Root.Name));
41 +            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tRoot: {0}", doc.Root.Name);
42 +            var attributes = doc.Root.Attributes().ToList();
43 +            foreach (var attribute in attributes)
44 +            {
45 +                XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\t{0}: {1}", attribute.Name, attribute.Value);
46 +            }
47 +        }
48 +        [Conditional("XMLTV_PARSER_TESTING")]
49 +        private void ParseChannels(XDocument doc)
50 +        {
51 +            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Parsing Channel Data");
52 +            var elements = doc.Root.Descendants(XMLTV_CONSTANTS.CHANNEL_ELEMENT).ToList();
53 +            foreach (var element in elements)
54 +            {
55 +                if (element.HasAttributes)
56 +                {
57 +                    foreach (var attribute in element.Attributes())
58 +                    {
59 +                        XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\t\t{0} {1}: {2}",element.Name, attribute.Name, attribute.Value);
60 +                    }
61 +                }
62 +                foreach (var childEllement in element.Descendants())
63 +                {
64 +                    if (childEllement.HasAttributes)
65 +                    {
66 +                        foreach (var attribute in childEllement.Attributes())
67 +                        {
68 +                            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\t\t\t{0}: {1}", attribute.Name, attribute.Value);
69 +                        }
70 +                    }
71 +                    XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\t\t\t{0}: {1}", childEllement.Name, childEllement.Value);
72 +                }
73 +            }
74 +        }
75 +        [Conditional("XMLTV_PARSER_TESTING")]
76 +        private void ParsePrograms(XDocument doc)
77 +        {
78 +            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Parsing Program Data");
79 +        }
80          #endregion
81      }
82   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines