XslTransformImpl.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //
  2. // XslTransfromImpl
  3. //
  4. // Authors:
  5. // Ben Maurer ([email protected])
  6. //
  7. // (C) 2003 Ben Maurer
  8. //
  9. using System;
  10. using System.Collections;
  11. using System.IO;
  12. using System.Text;
  13. using System.Xml.XPath;
  14. namespace System.Xml.Xsl {
  15. internal abstract class XslTransformImpl {
  16. public virtual void Load (string url, XmlResolver resolver)
  17. {
  18. Load (new XPathDocument (url).CreateNavigator (), resolver);
  19. }
  20. public virtual void Load (XmlReader stylesheet, XmlResolver resolver)
  21. {
  22. Load (new XPathDocument (stylesheet).CreateNavigator (), resolver);
  23. }
  24. public abstract void Load (XPathNavigator stylesheet, XmlResolver resolver);
  25. public abstract void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output, XmlResolver resolver);
  26. public virtual void Transform (string inputfile, string outputfile, XmlResolver resolver)
  27. {
  28. using (FileStream fs = new FileStream (outputfile, FileMode.Create, FileAccess.ReadWrite)) {
  29. Transform(new XPathDocument (inputfile).CreateNavigator (), null, new XmlTextWriter (fs, null), resolver);
  30. }
  31. }
  32. }
  33. }