bash 内的 XSLT 转换将 XPATH 值传递给输出文件名
XSLT Transformation within bash pass XPATH value to output file name
我正在进行批处理 xsl 转换,并希望使用我的样式表中的参数来形成输出文件名,但我不太确定该怎么做,它应该类似于:
$output = Join-Path $mypath {{XPATH}} $file.Name
java -cp $saxonpath net.sf.saxon.Transform -t -s:$file -xsl:$xsltpath -o:$output
({{XPATH}}
指的是我的 XPATH,简单如 count(//error)
)
希望有人能帮助我 that.z
谢谢!
而不是用 -o:$output
定义输出
您可以将输出路径作为参数传递给转换并使用 xsl:result-document
创建输出文件。
类似的东西:
$output = Join-Path $mypath $file.Name
java -cp $saxonpath net.sf.saxon.Transform -t -s:$file -xsl:$xsltpath -mypath=$output
<xsl:stylesheet>
...
<xsl:param name="mypath"/>
...
<xsl:result-document href="concat($mypath,count(//error))" method="xml">
...
</xsl:result-document>
</xsl:stylesheet>
根据您的系统,您需要注意路径中使用的分隔符。
如果您想在 运行 XSLT 之前进行 XPath 评估以计算例如该计数然后使用例如
调用 XQuery 处理器
java -cp $saxonpath net.sf.saxon.Query -qs:'count(//error)' -s:$file '!method=text'
例如将其存储在变量中
count=`java -cp $saxonpath net.sf.saxon.Query -qs:'count(//*)' -s:$file '!method=text'`
或者,在您的原始版本中,可能
$output = Join-Path $mypath `java -cp $saxonpath net.sf.saxon.Query -qs:'count(//*)' -s:$file '!method=text'` $file.Name
我正在进行批处理 xsl 转换,并希望使用我的样式表中的参数来形成输出文件名,但我不太确定该怎么做,它应该类似于:
$output = Join-Path $mypath {{XPATH}} $file.Name
java -cp $saxonpath net.sf.saxon.Transform -t -s:$file -xsl:$xsltpath -o:$output
({{XPATH}}
指的是我的 XPATH,简单如 count(//error)
)
希望有人能帮助我 that.z 谢谢!
而不是用 -o:$output
定义输出
您可以将输出路径作为参数传递给转换并使用 xsl:result-document
创建输出文件。
类似的东西:
$output = Join-Path $mypath $file.Name
java -cp $saxonpath net.sf.saxon.Transform -t -s:$file -xsl:$xsltpath -mypath=$output
<xsl:stylesheet>
...
<xsl:param name="mypath"/>
...
<xsl:result-document href="concat($mypath,count(//error))" method="xml">
...
</xsl:result-document>
</xsl:stylesheet>
根据您的系统,您需要注意路径中使用的分隔符。
如果您想在 运行 XSLT 之前进行 XPath 评估以计算例如该计数然后使用例如
调用 XQuery 处理器java -cp $saxonpath net.sf.saxon.Query -qs:'count(//error)' -s:$file '!method=text'
例如将其存储在变量中
count=`java -cp $saxonpath net.sf.saxon.Query -qs:'count(//*)' -s:$file '!method=text'`
或者,在您的原始版本中,可能
$output = Join-Path $mypath `java -cp $saxonpath net.sf.saxon.Query -qs:'count(//*)' -s:$file '!method=text'` $file.Name