是否可以使用params作为包含函数的数据?
我有一个C#文件,它以param的形式将信息传递给XSL表,以创建一个打印出数据的html页面。如果我对其工作的信息进行硬编码,但是如果我使用params而不返回任何内容,如果我使用文本标签打印出信息,那么我知道传入的值应该是正确的。
<xsl:param name="type"/>
<xsl:param name="filter"/>
<xsl:for-each select="london-schools/school [contains($type, '$filter')]">
这就是我想要做的,它只返回表格标题而不是信息。
谢谢,布兰登。
答案 0 :(得分:1)
也许你的意思是:
<xsl:for-each select="london-schools/school [contains(type, $filter)]">
如果没有看到您的输入和预期输出,很难确定 - 但当然,如果type
是节点的名称,那么它不应该以{{1}}作为前缀,如果$
是参数,则不应引用它。
另请注意,XML区分大小写;你提到$filter
和type
- 它们不一样。
我真的在这里猜测,但请考虑以下因素:
<强> XML 强>
Type
XSLT 1.0
<records>
<record>
<name>Alpha</name>
<type>Bravo</type>
</record>
<record>
<name>Bravo</name>
<type>Bravo</type>
</record>
<record>
<name>Charlie</name>
<type>Alpha</type>
</record>
<record>
<name>Delta</name>
<type>Alpha</type>
</record>
</records>
当上述样式表应用于带参数的输入时:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="property"/>
<xsl:param name="value"/>
<xsl:template match="/records">
<xsl:copy>
<xsl:for-each select="record[contains(*[name()=$property], $value)]">
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
结果将是:
$property = "name"
$value = "Bravo"
参数为:
<?xml version="1.0" encoding="UTF-8"?>
<records>
<record>
<name>Bravo</name>
<type>Bravo</type>
</record>
</records>
结果将是:
$property = "type"
$value = "Bravo"