首页 > 解决方案 > 如何从命令行运行 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 个文件路径(可能为转换添加一些选项)。

我需要做什么?

标签: javamacosxsltcommand-linesaxon

解决方案


最终我得到了它的工作。尽管这些并不是我所希望的详细的分步说明,但我将在此总结我到目前为止所学到的知识。希望这可以节省我不得不经历的几个小时的挫败感。

  • 确保您的计算机上安装了 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/ 但不要按照页面顶部的说明进行操作关于基本命令的形式。

更正/补充是最受欢迎的。


文件夹名称包含的问题描述/

  1. 将所有 3 个文件 ( saxon-he-10.6.jar,mystylesheet.xsl和 在我的 Documents 文件some.xml夹中命名XML/RSS的文件夹中;

  2. 运行以下命令:

    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
    
  3. 仅将 .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' 
    

    结果:成功转型。

  4. 将 .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' 
    

    结果:成功转型。


推荐阅读