Search code examples
xmlfilexsltsavemsxsl

How to save XML to a file


How do you save translated XML to an actual file on disk? I am new to XML/XSLT and I am trying to figure that out. I can't seem to find any examples that work for me. For example, I just want to save the file to c:\temp\text.xls. How to I save it? Do I have to use java or .net or some other programming language/api? I was hoping to have the XSL just save the file.


Solution

  • The XSL can't do anything by itself. It's just a definition for transforming an XML file into something else. To do anything with it you need to run the XSL Transform in a program, or using a tool like XML Spy.

    Update

    Here's a simple example I wrote some years ago in VBScript:

    Dim xml, xsl, htm, fso, flOut
    
    Set xml = CreateObject("MSXML2.DOMDocument")
    Set xsl = CreateObject("Msxml2.DOMDocument")
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    xml.load WScript.Arguments(0)
    xsl.load WScript.Arguments(1)
    htm = xml.transformNode(xsl)
    
    Set flOut = fso.CreateTextFile(WScript.Arguments(2))
    flOut.Write htm
    flOut.close
    

    I called it xmlTrfm.vbs. Use it like this:

    xmlTrfm.vbs [sourceFileName].xml [transformFileName].xsl [outputFileName].[ext]
    

    The file extension for the output file name obviously depends on the format that the XSL transform produces, usually xml, html or txt, but can be almost anything.