gpt4 book ai didi

xml - xslt中的输入参数

转载 作者:数据小太阳 更新时间:2023-10-29 02:21:04 27 4
gpt4 key购买 nike

如何将输入参数传递给 XSLT 样式表?我正在使用 xsltproc,我想使用 --stringparam <param> <value>作为参数,但我不知道如何访问 XSLT 中的参数。有人可以举个例子吗?提前致谢。

最佳答案

How to give input parameter to an xslt file?

在 XSLT 中任何 全局 参数(xsl:param 是XSLT 样式表)可以由转换的发起者在外部指定其值

这种外部参数设置的完成方式取决于实现,并且因 XSLT 处理器而异——请阅读您正在使用的特定 XSLT 处理器的文档。

这是一个小例子:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:param name="pDeletePos" select="3"/>

<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>

<xsl:template match="num">
<xsl:if test="not(position() = $pDeletePos)">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

这里,名为pDeletePos 的全局参数是必须删除的num 元素的位置。

还有一个默认值 (3),为此参数指定。如果转换的发起者未指定 pDeletePos 参数,则将使用此值。

当上述转换应用于此 XML 文档时:

<nums>
<num>01</num>
<num>02</num>
<num>03</num>
<num>04</num>
<num>05</num>
<num>06</num>
<num>07</num>
<num>08</num>
<num>09</num>
<num>10</num>
</nums>

如果 pDeletePos 的值在外部指定为 5,则转换会产生以下结果:

<nums>
<num>01</num>
<num>02</num>
<num>03</num>
<num>04</num>
<num>06</num>
<num>07</num>
<num>08</num>
<num>09</num>
<num>10</num>
</nums>

至于在外部设置参数,这是在启动 XslCompiledTransform XSLT 处理器时如何在 C# 中完成的:

http://msdn.microsoft.com/en-us/library/system.xml.xsl.xsltargumentlist.addparam.aspx

关于xml - xslt中的输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475131/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com