2016-02-04 62 views
1

我有這個XSLT的片段(1.0版本):XSLT和XSL:對,每一個通配符

<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> 

但它不工作 - 我得到的錯誤:

Unexpected token '' in the expression. Items/chkBox*<--

我如何使用<xsl:for-each>使用通配符的數量結束?

請幫忙!

感謝提前:)

+0

有一個很好的機會,你不需要'的'但是'chkBox'名稱的模板匹配。張貼更多的xslt甚至是原始xml樣本,以便我們向您展示。 – Parfait

+0

感謝您的建議,但來自@TimC的回答非常好,只是我尋找的解決方案。 – user1855026

回答

2

*匹配的元件。如果你想匹配元素名稱,你必須考慮使用字符串函數。在這種情況下,starts-with

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

非常感謝,@TimC,它工作的很好! :) – user1855026