code_junkie

How to Convert a StreamReader into an XMLReader object in .Net 2.0/C#

Nov 10th, 2011
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. string transformXML = @"pathToXslDocument";
  2.  
  3. XmlDocument originalXml = new XmlDocument();
  4.  
  5. XmlDocument transformedXml = new XmlDocument();
  6.  
  7. XslCompiledTransform transformer = new XslCompiledTransform();
  8.  
  9. DataSet ds = new DataSet();
  10.  
  11. string filepath;
  12.  
  13. originalXml.LoadXml(ds.GetXml()); //data loaded prior
  14.  
  15. StringBuilder sb = new StringBuilder();
  16.  
  17. XmlWriter writer = XmlWriter.Create(sb);
  18.  
  19. transformer.Load(transformXML);
  20.  
  21. transformer.Transform(originalXml, writer); //no need to select the node
  22.  
  23. transformedXml.LoadXml(sb.ToString());
  24.  
  25. transformedXml.Save(filepath);
  26.  
  27. writer.Close();
  28.  
  29. BufferedStream stream = new BufferedStream(new MemoryStream());
  30.  
  31. DataSet ds = new DataSet();
  32.  
  33. da.Fill(ds);
  34.  
  35. ds.WriteXml(stream);
  36.  
  37. StreamReader sr = new StreamReader(stream, true);
  38.  
  39. stream.Position = 0; //I'm not certain if this is necessary, but for the StreamReader to read the text the position must be reset.
  40.  
  41. XmlReader reader = XmlReader.Create(sr, null); //Problem is created here, the XmlReader is created with none of the data from the StreamReader
  42.  
  43. XslCompiledTransform transformer = new XslCompiledTransform();
  44.  
  45. transformer.Load(@"<path to xsl file>");
  46.  
  47. transformer.Transform(reader, null, writer); //Exception is thrown here, though the problem originates from the XmlReader.Create(sr, null)
  48.  
  49. BufferedStream stream = new BufferedStream(new MemoryStream());
  50. stream.Write(Encoding.ASCII.GetBytes("<xml>foo</xml>"), 0, "<xml>foo</xml>".Length);
  51. stream.Seek(0, SeekOrigin.Begin);
  52. StreamReader sr = new StreamReader(stream);
  53. XmlReader reader = XmlReader.Create(sr);
  54. while (reader.Read())
  55. {
  56. Console.WriteLine(reader.Value);
  57. }
  58. stream.Close();
  59.  
  60. System.Xml.XmlDocument orgDoc = new System.Xml.XmlDocument();
  61. orgDoc.LoadXml(orgXML);
  62.  
  63. // MUST SELECT THE ROOT NODE
  64. XmlNode transNode = orgDoc.SelectSingleNode("/");
  65. System.Text.StringBuilder sb = new System.Text.StringBuilder();
  66. XmlWriter writer = XmlWriter.Create(sb);
  67.  
  68. System.IO.StringReader stream = new System.IO.StringReader(transformXML);
  69. XmlReader reader = XmlReader.Create(stream);
  70.  
  71. System.Xml.Xsl.XslCompiledTransform trans = new System.Xml.Xsl.XslCompiledTransform();
  72. trans.Load(reader);
  73. trans.Transform(transNode, writer);
  74.  
  75. XmlDocument doc = new XmlDocument();
  76. doc.LoadXml(sb.ToString());
  77.  
  78. return doc;
Add Comment
Please, Sign In to add comment