XSLT和xsl:for-each带有通配符

时间:2016-02-04 14:18:26

标签: xml xslt

我有这个XSLT-snippet(版本1.0):

<p><xsl:value-of select="Items/chkBox1" disable-output-escaping="yes" /></p>
<p><xsl:value-of select="Items/chkBox2" disable-output-escaping="yes" /></p>
<p><xsl:value-of select="Items/chkBox3" disable-output-escaping="yes" /></p>

这很好用。我想用<xsl:for-each>来编写这个更聪明,因为Items / chkBox的数量可能不同,但我不能使它工作。我尝试了很多这样的事情:

<xsl:for-each select="Items/chkBox*">
    <p><xsl:value-of select="." disable-output-escaping="yes" /></p>
</xsl:for-each>

但它不起作用 - 我收到错误:

  

表达式中出现意外的标记''。项目/ chkBox * LT; -

如何在最后使用带有通配符的<xsl:for-each>

请帮忙!

提前致谢:)

1 个答案:

答案 0 :(得分:2)

*匹配一个元素。如果要匹配元素名称,则必须考虑使用字符串函数。在这种情况下,starts-with

<xsl:for-each select="Items/*[starts-with(local-name(), 'chkBox')]">