下面是我的XML我希望在State = Talking Out
时显示AgentSales的所有值<AgentSales>
<AgentName>WRIGHT SIMMONS NATHANIEL</AgentName>
<State>Talking Out</State>
<Reason/>
<time>3</time></AgentSales>
这是我的XSLT
<xsl:if test="/NewDataSet/AgentSales/State[text() = \'Talking Out\']">
<xsl:sort data-type="number" select="time" order="descending"/>
<tr>
<td><xsl:value-of select="AgentName"/></td>
<td><xsl:value-of select="State"/></td>
<td><xsl:value-of select="time"/></td>
</tr>
</xsl:if>
这是我的错误
加载样式表时出错:解析XSLT样式表失败。
块引用
答案 0 :(得分:1)
首先,您不需要像\'Talking Out\'
那样“逃避”,只需使用'Talking Out'
。
其次,xsl:sort
指令只能是XSLT 1.0中xsl:apply-templates
或xsl:for-each
指令的子指令
第三,XSLT风格:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Agents">
<table>
<xsl:apply-templates>
<xsl:sort select="time" data-type="number" order="descending"/>
</xsl:apply-templates>
</table>
</xsl:template>
<xsl:template match="AgentSales[State='Talking Out']">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="AgentSales/*">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
<xsl:template match="AgentSales/Reason|AgentSales"/>
</xsl:stylesheet>
使用此输入:
<Agents>
<AgentSales>
<AgentName>WRIGHT SIMMONS NATHANIEL</AgentName>
<State>Talking Out</State>
<Reason>whatever</Reason>
<time>3</time>
</AgentSales>
<AgentSales>
<AgentName>SOMEONE</AgentName>
<State>Talking In</State>
<Reason>whatever</Reason>
<time>2</time>
</AgentSales>
<AgentSales>
<AgentName>SOMEONE ELSE</AgentName>
<State>Talking Out</State>
<Reason>whatever</Reason>
<time>5</time>
</AgentSales>
</Agents>
输出:
<table>
<tr>
<td>SOMEONE ELSE</td>
<td>Talking Out</td>
<td>5</td>
</tr>
<tr>
<td>WRIGHT SIMMONS NATHANIEL</td>
<td>Talking Out</td>
<td>3</td>
</tr>
</table>
答案 1 :(得分:0)
您发布的样式表中存在两个问题:a)您无需使用'
来屏蔽\
,只需编写'Talking Out'
即可。 b)xsl:sort
不能是xsl:if
的孩子。
答案 2 :(得分:0)
使用强>:
<xsl:template match="AgentName[../State='Talking Out']">
<td><xsl:value-of select="."/></td>
</xsl:template>
,请阅读一本关于XSLT的好书,以获得至少基本原则:<xsl:template>
,<xsl:for-each>
,<xsl:sort>
,身份规则并覆盖它, ......等等。