y.a*_*zim 0 java xslt macos command-line saxon
任何人都可以发布详细的分步说明,说明如何安装 Saxon (10 HE) 以及如何从 MacOS (10.13.6) 中的命令行运行转换?
我已经在我的电脑上安装了Java。
我已经SaxonHE10-6J.zip从 SourceForge 下载了该文件。
根据此处的建议,我已将其放入文件夹saxon-he-10.6.jar中 myUserName/Library/Java/Extensions。然后我打开终端应用程序并输入基于此答案的
命令:
java -jar saxon-he-10.6.jar -'/Users/myUserName/Documents/path/to/mystylesheet.xsl' -s:'/Users/myUserName/Documents/path/to/some.xml'
Run Code Online (Sandbox Code Playgroud)
这导致:
Unable to access jarfile saxon-he-10.6.jar
Run Code Online (Sandbox Code Playgroud)
我的所有尝试(包括将 .jar 文件移动到/Library/Java/Extensions 目录或在命令中包含 .jar 文件的完整路径)都失败了,并出现相同的错误消息。
请注意,我不是 Java 开发人员,我不打算在应用程序中使用它。我想要的只是能够偶尔进行一次转变。
我还应该注意,XML 和 XSLT 文件的位置可能会因情况而异。我希望能够将 .jar 文件保留在恒定位置,并根据需要提供 XML 和 XSLT 文件的路径 - IOW,我想要一个命令模板,我只需要更改 2 个文件路径(并且可能为转换添加一些选项)。
我需要做什么?
最终我成功了。虽然这些并不完全是我所希望的详细的分步说明,但我将在这里总结我迄今为止所学到的内容。希望这能让某人免去我所经历的沮丧时光。
确保您的计算机上安装了 Java。如果没有,请从 Oracle 下载并安装。
从 SourceForge 下载 Saxon。解压缩并将其放置在硬盘上的任何位置,除了:
/Library/Java/Extensions或放入myUserName/Library/Java/Extensions;/(请参阅下面的说明)。要启动转换,请发出命令:
java -jar 'path/to/saxon-he-10.6.jar' -xsl:'path/to/mystylesheet.xsl' -s:'path/to/some.xml'
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用:
java -cp 'path/to/saxon-he-10.6.jar' net.sf.saxon.Transform -xsl:'path/to/mystylesheet.xsl' -s:'path/to/some.xml'
Run Code Online (Sandbox Code Playgroud)
net.sf.saxon.Transform通过更改为,此形式也可用于运行 XQuery
net.sf.saxon.Query。
要向命令添加更多选项和/或参数,请参阅此处给出的说明: https:
//www.saxonica.com/html/documentation10/using-xsl/commandline/
,但不要遵循页面顶部的说明关于基本命令的形式。
欢迎更正/补充。
文件夹名称问题的描述包含/:
将所有 3 个文件(saxon-he-10.6.jar、mystylesheet.xsl)
放入我的 Documents 文件夹中some.xml命名的文件夹中XML/RSS;
运行以下命令:
java -jar '/Users/myUserName/Documents/XML:RSS/saxon-he-10.6.jar' -xsl:'/Users/myUserName/Documents/XML:RSS/mystylesheet.xsl' -s:'/Users/myUserName/Documents/XML:RSS/some.xml'
Run Code Online (Sandbox Code Playgroud)
收到以下错误:
Error: Could not find or load main class net.sf.saxon.Transform Caused by: java.lang.ClassNotFoundException: net.sf.saxon.Transform
Run Code Online (Sandbox Code Playgroud)
仅将 .jar 文件移至父文件夹并运行以下命令:
java -jar '/Users/myUserName/Documents/saxon-he-10.6.jar' -xsl:'/Users/myUserName/Documents/XML:RSS/mystylesheet.xsl' -s:'/Users/myUserName/Documents/XML:RSS/some.xml'
Run Code Online (Sandbox Code Playgroud)
结果:转型成功。
将 .jar 文件移回原处,将文件夹重命名为XMLRSS并运行以下命令:
java -jar '/Users/myUserName/Documents/XMLRSS/saxon-he-10.6.jar' -xsl:'/Users/myUserName/Documents/XMLRSS/mystylesheet.xsl' -s:'/Users/myUserName/Documents/XMLRSS/some.xml'
Run Code Online (Sandbox Code Playgroud)
结果:转型成功。
| 归档时间: |
|
| 查看次数: |
4091 次 |
| 最近记录: |