我认为只需告诉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']">发布于 2011-02-03 23:26:25
XSLT使用单个=作为其相等运算符。
此外,您在循环体中选择了Status,尽管您列出的xml示例包含State元素-这可能是一个疏忽。
https://stackoverflow.com/questions/4887665
复制相似问题