我想转换位于Xml
存档中的Zip
文档,在这种特殊情况下,它是Docx
(OpenXML)Zip文件存档。当我在寻找答案的时候,我读了几次jar protocol的建议(例如:here)。在尝试了各种组合或斜杠,反斜杠和前缀后,我终于得到了Saxon输出的“文件不存在”,即:
java -cp "C:\Program Files\SaxonHE9\saxon9he.jar" net.sf.saxon.Transform ^
-xsl:style-transform.xslt ^
-s:file:///c:/temp/test.docx!/word/document.xml ^
-o:test_out.xml
输出:
Warning: at xsl:stylesheet on line 14 column 19 of style-transform.xslt:
Running an XSLT 1 stylesheet with an XSLT 2 processor
Error
I/O error reported by XML parser processing
file:///c:/temp/test.docx!/word/document.xml:
c:\temp\test.docx!\word\document.xml (The system cannot find the path specified)
Transformation failed: Run-time errors were reported
这与我之前尝试的输出完全不同,当时我假设我没有使用对Zip文件资源的正确引用。
有人知道这里可能存在什么问题,或者更一般地提供使用Zip存档中的Xml文件作为Xml源与Saxon进行转换的工作示例?
答案 0 :(得分:2)
使用-u选项将文件名作为url传递给Saxom,例如
java -jar saxon9he.jar -u jar:file:./YOURINPUTARCHIVE.ods\!/content.xml YOURXSLT.xslt
这适用于linux。
Best,Ruprecht