我認爲只要告訴for-each只選擇「Site」等於「PB」但運行腳本的top_coach_sales_vw它不循環XML中的任何數據。如何篩選XSL中for-each循環中顯示的內容
我逃避單引號,因爲它是PHP回聲的一部分。
<xsl:for-each select="NewDataSet/top_coach_sales_vw[Site==\'PB\']">
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="Site"/></td>
<td><xsl:value-of select="Status"/></td>
</xsl:for-each>
XML:
<NewDataSet>
<top_coach_sales_vw>
<name>Mike</name>
<Site>PB</Site>
<State>Ready</State>
</top_coach_sales_vw>
<top_coach_sales_vw>
<name>Bill</name>
<Site>EL</Site>
<State>Talking</State>
</top_coach_sales_vw>
<top_coach_sales_vw>
<name>Ted</name>
<Site>PB</Site>
<State>Ready</State>
</top_coach_sales_vw>
</NewDataSet>
問得好,+1。請參閱我的答案以解釋所提供的代碼中的所有問題,以及完整的解決方案。 :) – 2011-02-03 16:30:36
小問題,但是你可以用`PB`替換` `,因爲它保證具有相同的值。它會讓你的xslt略微更有效率。另外,我建議在PHP中使用heredoc/nowdoc語法來處理字符串文字時,它是一個XML文檔;節省您擔心轉義的東西:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc –
Flynn1179
2011-02-03 16:40:21