如何定义 zip 文件中的源文件?

问题描述 投票:0回答:3

我的尝试基于这个答案,但我没有运气。我在 Windows 上从 AutoHotkey 运行它,但我也无法让它从命令行运行。

使用此行设置默认文件夹。所有相关文件(Saxon 除外)都在该文件夹中。

SetWorkingDir E:\dwgs\Json\ORR Stations Table1410

此运行行返回“无效 URI”错误:

runwait %comspec% /k java -jar "C:\Program Files\My Small Programs\Saxon\saxon-he-12.5.jar" -u jar:"file:./ORR Stations Table1410.zip\!/ORR Stations Table1410.xml" -xsl:"ORR Table 1410 Compare with NR.xsl" -o:"ORR Table 1410 Compare with NR OUT.xml"

正确的语法是什么?

如果我使用

-s:"ORR Stations Table1410.xml"
运行未压缩的 .xml 文件,它就可以工作。

enter image description here

enter image description here

java command-line autohotkey saxon
3个回答
1
投票

以下内容在 Mac 上对我有用(一行):

java net.sf.saxon.Transform -xsl:test.xsl -u 
  -s:jar:file:///Users/mike/Downloads/Archive.zip!/africa.xml -t

我手边没有 Windows 机器可以试用;不同的 shell 有不同的特殊字符转义规则。

现在在名称中添加空格,我发现以下方法有效:

-u -s:"jar:file:///Users/mike/Downloads/Archive%202/Archive.zip!/south%20america.xml"

它也可以在 URI 周围不带引号的情况下工作。

如果

Downloads
是当前目录,我也可以这样做

-u -s:jar:file:Archive%202/Archive.zip!/south%20america.xml

1
投票

这有效(全部在一行)。

runwait java -jar "C:\Program Files\My Small Programs\Saxon\saxon-he-12.5.jar"
-u jar:file:ORR`%20Stations`%20Table1410.zip!/ORR`%20Stations`%20Table1410.xml
-xsl:ORR`%20Table`%201410`%20Compare`%20with`%20NR.xsl
-o:"ORR Table 1410 Compare with NR OUT.xml"
  • 输入文件没有双引号。
  • 无需路径。
  • %20
    替换空格。
  • AutoHotkey 需要反引号来转义 %。如果从 Windows 命令框运行,则需要删除这些。
  • 不需要
    -s:
    源选项,因为
    -u
    似乎是替代品。

0
投票

我会尝试

-s:"ORR Stations Table1410.zip?select=ORR Stations Table1410.xml"

或者对于 jar:URI 尝试在有空格的地方尝试使用 %20:

-u jar:"file:./ORR%20Stations%20Table1410.zip\!/ORR%20Stations%20Table1410.xml
。但在测试中我发现只有 jar URI 中的绝对文件 URI 才有效,例如
 java -jar 'C:\Program Files\Saxonica\SaxonHE12-5J\saxon-he-12.5.jar' -t -u -xsl:./identity-xslt3-mode.xsl -s:'jar:file:///C:/Users/marti/OneDrive/Documents/xslt/blog-xslt-3-by-example/jar-zip-uri-test/sample%20file%201.zip!/sample%20file%201.xml'
有效。

© www.soinside.com 2019 - 2024. All rights reserved.