java - 如何从命令行运行 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'
这导致:
Unable to access jarfile saxon-he-10.6.jar
我的所有尝试,包括将 .jar 文件移动到/Library/Java/Extensions
目录或在命令中包含 .jar 文件的完整路径,都以相同的错误消息失败。
请注意,我不是 Java 开发人员,我不打算在应用程序中使用它。我想要的只是能够偶尔进行一次转换。
我还应该注意,我的 XML 和 XSLT 文件的位置可能会因情况而异。我希望能够将 .jar 文件保存在一个恒定位置并根据需要提供 XML 和 XSLT 文件的路径 - IOW,我想要一个命令模板,我只需要更改 2 个文件路径(可能为转换添加一些选项)。
我需要做什么?
解决方案
最终我得到了它的工作。尽管这些并不是我所希望的详细的分步说明,但我将在此总结我到目前为止所学到的知识。希望这可以节省我不得不经历的几个小时的挫败感。
确保您的计算机上安装了 Java。如果没有,请从 Oracle 下载并安装。
从 SourceForge 下载 Saxon。解压缩并将其放在硬盘上的任何位置,除了:
- 请勿将其放入
/Library/Java/Extensions
或放入myUserName/Library/Java/Extensions
; - 不要将它放在名称中包含 a 的文件夹中
/
(请参阅下面的说明)。
- 请勿将其放入
要启动转换,请执行以下命令:
java -jar 'path/to/saxon-he-10.6.jar' -xsl:'path/to/mystylesheet.xsl' -s:'path/to/some.xml'
或者,您可以使用:
java -cp 'path/to/saxon-he-10.6.jar' net.sf.saxon.Transform -xsl:'path/to/mystylesheet.xsl' -s:'path/to/some.xml'
此表单也可用于运行 XQuery,方法是更改
net.sf.saxon.Transform
为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'
收到以下错误:
Error: Could not find or load main class net.sf.saxon.Transform Caused by: java.lang.ClassNotFoundException: net.sf.saxon.Transform
仅将 .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'
结果:成功转型。
将 .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'
结果:成功转型。
推荐阅读
- c# - Dynamics CRM C# 插件 - 第一次使用 API
- linux-kernel - KNEM cookie 和声明的区域
- css - 将 svg 添加到内容属性
- flutter - 我必须在我的 Stack 小部件中添加溢出吗?
- python-3.x - pynput 只能处理来自特定键盘的输入吗?如果是,如何实现?
- c# - 如何通过文本框在datagridview中搜索
- ubuntu - 如何安装 CMake 在 find_package 中包含 catkin/ROS 的项目?
- java - 使用方面修改方法参数
- eclipse - 原因:java.lang.NoClassDefFoundError: Failed to link when running JUnit tests through Arquiliqn for a Maven project
- sql - 由于 SAS 中的交错结果,如何折叠重复行