【问题标题】:xalan command line passing params to xsltxalan 命令行将参数传递给 xslt
【发布时间】:2019-04-11 13:47:19
【问题描述】:

我正在尝试使用 xalan 命令行使用 xslt 对 xml 进行命令行处理:

(http://manpages.ubuntu.com/manpages/xenial/man1/xalan.1.html)

使用的命令:

xalan -q -param name_param 'something relevant' -xsl use.xsl -in use.xml

使用的 Xalan 版本:

Xalan version 1.11.0
Xerces version 3.2.0

试错法

我在命令中试过单引号和双引号 并尝试访问 xslt 中的参数,但我仍然无法访问我在命令行中传递的参数

我希望能够使用 use.xsl 中传递的参数来处理 use.xml

【问题讨论】:

  • 您的 XSLT 是否有全局 <xsl:param name="name_param"/>?当您说“无法访问参数”时,结果究竟是什么?

标签: bash xslt parameters xslt-1.0 xalan


【解决方案1】:

http://xalan.apache.org/xalan-c/usagepatterns.html#xalantransformer 说“Xalan 命令行实用程序当前仅支持顶级样式表参数的文本字符串值。需要单引号来标识文本字符串值。”和“如果字符串表达式包含 shell 拦截的空格或其他字符,首先将字符串括在单引号中,以便 Xalan-C++ 将其解释为字符串表达式,然后将生成的字符串括在双引号中,以便 shell 将其解释为单论。”并举一个例子Xalan -p param1 "'string expression'"foo.xml foo.xsl。我尚未对此进行测试,但它太长了,无法放入评论中,因此将其发布为答案。

【讨论】:

  • 优秀的发现!
猜你喜欢
  • 2015-06-09
  • 2017-10-22
  • 2019-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多