ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/xmltv_parser/trunk/libxmltv/Core/XMLTVLoader.cs
Revision: 49
Committed: Fri Mar 8 05:20:12 2013 UTC (10 years, 3 months ago) by william
File size: 2446 byte(s)
Log Message:

File Contents

# Content
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using libxmltv.Interfaces;
6 using System.IO;
7 using Enterprise.Logging;
8 using System.Xml.Linq;
9 using System.Xml;
10
11 namespace libxmltv.Core
12 {
13 internal class XMLTVLoader : IDisposable
14 {
15 private string xmlfile = string.Empty;
16 internal static void CreateInstance(string xml_file, XMLTVRuntimeInstance xmltv)
17 {
18 using (XMLTVLoader g = new XMLTVLoader(xml_file, xmltv)) { }
19 }
20 private XMLTVRuntimeInstance instance;
21 protected XMLTVLoader(string xml_file, XMLTVRuntimeInstance xmltv)
22 {
23 xmltv_logger.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVLoader");
24 //string _xmltv;
25 //if (!Internals.VerifyInstance<string>(xmltv, out _xmltv)) { return; }
26 //xmlfile = _xmltv;
27 //LoadXml();
28 instance = xmltv;
29 instance.XmlFile = new FileInfo(xml_file);
30 LoadXml();
31 }
32 //#region IXMLTV_LOADER
33 //public FileInfo XmlFile { get { return new FileInfo(xmlfile); } }
34 //public XDocument XmlDoc { get; private set; }
35 //#endregion
36
37 private void LoadXml()
38 {
39 xmltv_logger.Log.Info.WriteLine("Loading XMLTV File: {0}", instance.XmlFile.Name);
40 //xmltv_logger.Log.Warn.WriteLine("XML File Loading has not been implemented yet!");
41 try
42 {
43 var document = XDocument.Load(instance.XmlFile.FullName);
44 using (var ms = new MemoryStream())
45 using (var xw = new XmlTextWriter(ms, Encoding.UTF8))
46 {
47 document.Save(xw);
48 xw.Flush();
49 StreamReader sr = new StreamReader(ms);
50 ms.Seek(0, SeekOrigin.Begin);
51 instance.XmlDoc = sr.ReadToEnd();
52 }
53 document = null;
54 }
55 catch (Exception ex)
56 {
57 xmltv_logger.Log.Error.WriteLine("Failed to load XMLTV File: {0}", instance.XmlFile.Name);
58 xmltv_logger.Log.Error.WriteLine(ex.GetBaseException().ToString());
59 }
60 }
61
62 public void Dispose()
63 {
64 //throw new NotImplementedException();
65 }
66
67
68 }
69 }