How to save XML to a file

橙三吉。 提交于 2020-01-01 12:16:23

问题


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.


回答1:


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.




回答2:


Almost every XSLT processor allows a transformation to be initiated from the command line. One of the arguments is the file where to save the result of the transformation.

Examples:

  1. Saxon 9.x: java net.sf.saxon.Transform -s:source -xsl:stylesheet -o:output

  2. MSXML6: msxsl.exe %xml% %xsl% -o %out% -u '6.0' -t %param[ name="value"]%

  3. XQSharp: xslt.exe -s %xml% -o %out% -r 1 -t %xsl% %param[ name="value"]%

  4. .NET 2.0+ (XslCompiledTransform): nxslt2.exe %xml% %xsl% -t -o %out%%param[ name="value"]%

  5. AltovaXML (XML-SPY): AltovaXML.exe -xslt2 %xsl% -in %xml% -out %out%%param[ name="value"]%

In 2. to 5. above %xml% is the path to the file containing the XML document, %xsl% is the path to the file containing the primary XSLT stylesheet, `%out% is the path to the file where the result of the transformation should be saved.




回答3:


Yes, you can't save it from the XSLT - what languages can you use?




回答4:


Perhaps (I'm speculating) your difficulty is that you are running the XSLT transformation in a browser? In that case you will have difficulties because browsers, for security reasons, don't allow writing to filestore in the normal way.

If that's not the case, please explain how you are running your XSLT transformation.



来源:https://stackoverflow.com/questions/10628361/how-to-save-xml-to-a-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!