从Zip存档中引用Xml文件

时间:2013-09-01 11:56:00

标签: xml xslt saxon

我想转换位于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进行转换的工作示例?

1 个答案:

答案 0 :(得分:2)

使用-u选项将文件名作为url传递给Saxom,例如

java -jar saxon9he.jar -u jar:file:./YOURINPUTARCHIVE.ods\!/content.xml YOURXSLT.xslt

这适用于linux。

Best,Ruprecht