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。提供されたコードのすべての問題の説明と、完全な解決方法については、私の答えを参照してください。 :) –
マイナーポイントですが、同じ値を持つことが保証されているので、 ' 'を 'PB'だけで置き換えることができます。それはあなたのxsltを少し効率的にするでしょう。また、XML文書の場合、PHPの文字列リテラルにheredoc/nowdoc構文を使用することをお勧めします。エスケープすることについて心配することはありません:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc –
Flynn1179