我正在用PHP设置一个xslt param,然后调用转换。我想在XPath表达式中使用param值来获取正确的节点,但这似乎不起作用。我猜这是可能的,我想我只是缺少语法。我在这里......
PHP:
$xslt->setParameter('','month','September');
XSL:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<!-- Heres my param from the PHP -->
<xsl:param name="month" />
<!-- Here where I want it for grab the month node with the attribute name="September" but it doesn't work, gives me a compilation error -->
<xsl:template match="/root/year/month[@name = $month]">
<p>
<xsl:value-of select="$month" />
</p>
</xsl:template>
答案 0 :(得分:1)
您收到错误,因为不允许在模板的match
表达式中使用变量(或外部参数)。
您可以使用以下解决方法:
<xsl:template match="/root/year/month">
<xsl:if test="@name = $month">
<p>
<xsl:value-of select="$month" />
</p>
</xsl:if>
</xsl:template>