我认为只需告诉for-each只选择“top_coach_sales_vw”等于"PB“的站点就可以了,但是当我运行脚本时,它不会遍历XML中的任何数据。
我转义了单引号,因为它是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>发布于 2011-02-04 00:29:36
for -每个select="NewDataSet/top_coach_sales_vwSite==\'PB\'">
此有几个问题
==运算符。您可能希望operator.\'PB\'在语法上无效--您的意思可能只是'PB'NewDataSet是所提供的=文档的顶层元素。如果上面的<xsl:for-each>指令位于与文档的根( / )不匹配的任何模板中,则表达式NewDataSet/top_coach_sales_vw[Site='PB']将不会选择任何节点,因为这是一个相对表达式,将根据当前节点(模板匹配的节点)进行计算。解决方案
使用:
<xsl:for-each select="/NewDataSet/top_coach_sales_vw[Site='PB']">https://stackoverflow.com/questions/4887665
复制相似问题