仍然很难掌握一些较难的模板,任何帮助都会很棒。
现在我正在使用一个简单的 for-each 循环,它对表格中的数据进行排序和显示。我想做同样的事情,但跳过所有节点,其中“状态”=“讨论”下面是我当前的样式表,下面是我的 XML。我想我可以在当前循环中添加一个 for-each 来忽略满足我的条件的节点。我正在转义单引号,因为它是更大的 php 脚本的一部分。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table cellpadding="3" cellspacing="0" width="390">
<tr>
<th style="text-align:left;"><span style="font:20px arial; font-weight:bold;">Agent Name</span></th>
<th style="text-align:center;"><span style="font:20px arial; font-weight:bold;">State</span></th>
<th style="text-align:center;"><span style="font:20px arial; font-weight:bold;">Time</span></th>
</tr>
<xsl:for-each select="NewDataSet/AgentSales">
<tr>
<xsl:if test="(position() mod 2 = 1)">
<xsl:attribute name="bgcolor">#cccccc</xsl:attribute>
</xsl:if>
<xsl:if test="AgentSales[State=\'Talking Out\']">
</xsl:if>
<td style="text-align:left;"><span style="font:14px arial; font-weight:bold;"><xsl:value-of select="AgentName"/></span></td>
<td style="text-align:center;"><span style="font:14px arial; font-weight:bold;"><xsl:value-of select="State"/></span></td>
<td style="text-align:center;"><span style="font:14px arial; font-weight:bold;"><xsl:value-of select="time"/></span></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
这是我的 XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<NewDataSet>
<AgentSales>
<AgentName>MCCALLISTER AARON</AgentName>
<State>Talking Out</State>
<Reason />
<time>9</time>
</AgentSales>
<AgentSales>
<AgentName>APPELHANS BARRY</AgentName>
<State>Talking Out</State>
<Reason />
<time>1</time>
</AgentSales>
<AgentSales>
<AgentName>ARREDONDO KARLA</AgentName>
<State>Talking Out</State>
<Reason />
<time>0</time>
</AgentSales>
<AgentSales>
<AgentName>WOOTERS CHAD</AgentName>
<State>Talking In</State>
<Reason />
<time>5</time>
</AgentSales>
<AgentSales>
<AgentName>LANDINI EUGENE</AgentName>
<State>Not Ready</State>
<Reason>TRAINING</Reason>
<time>16</time>
</AgentSales>
<AgentSales>
<AgentName>BROWN EYES JONETTE</AgentName>
<State>Not Ready</State>
<Reason>TRAINING</Reason>
<time>13</time>
</AgentSales>
</NewDataSet>
Run Code Online (Sandbox Code Playgroud)
现在我正在使用一个简单的 for-each 循环,它对表格中的数据进行排序和显示。我想做同样的事情,但跳过“状态”=“说出来”的所有节点
只需更换:
<xsl:for-each select="NewDataSet/AgentSales">
Run Code Online (Sandbox Code Playgroud)
和
<xsl:for-each select="NewDataSet/AgentSales[not(State='Talking Out')]">
Run Code Online (Sandbox Code Playgroud)