如何传递参数并在我的XSLT中使用它。

11
我有一个XML文件和一个相关的XSLT文件。我正在使用msxsl.exe,并且需要将参数作为命令行参数传递,并在我的XSLT文件中使用它。 我该怎么做? 命令:
msxsl.exe country.xml sheet.xslt -o country_sheet.html p1="india"

如何在我的xslt文件中检索值india

1个回答

7

试一下这个

<xsl:param name="p1" select="p1"/>

这将位于任何模板之外,有点像全局变量。

是的,然后您可以在模板内部使用这个内容。

<xsl:value-of select="$p1"/>

非常感谢您。在这行之后,我可以在“for-each select =”Root/Row[$p1]“语句中使用$p1吗? - sulakshana
我的 XML 文件包含一行 <india>OK</india>,所以我正在将 india 作为参数传递。现在我需要检查如果 india==ok,则执行其他操作。 - sulakshana
<xsl:value-of select="$p1"/> 我已经让它工作了。但我想在if语句中使用它。<xsl:if test="india='OK'">我需要更改这一行,以便包括 $p1。因为我的xml文件包含<india>OK</india>。 - sulakshana
1
考虑发布一份XML样本,我们真的需要看到一些上下文来帮助您处理特定的代码。如果您想要一个for-each来处理所有具有参数p1名称的子元素并且该元素的值为“OK”的Row元素,则可以尝试<xsl:for-each select="Root/Row[*[local-name() = $p1] = 'OK']">...</xsl:for-each>。如果这不起作用,请在问题中添加XML输入的示例。 - Martin Honnen
@Martin Honnen - 非常感谢你...现在它正常工作了...使用相同的命令... - sulakshana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接