如何比较字符串以使用XSLT创建表?
我有一个像这样的xml:
<Os>
<O type="xyz">
<Count>126</Count>
<Food>Yes</Food>
<Owner name="Jack">
<Phone>564815</Phone>
</Owner>
<Date>12/12/2014</Date>
</O>
<O type="zyx">
<Count>56</Count>
<Food>No</Food>
<Owner name="Phill">
<Phone>826633</Phone>
</Owner>
<Date>09/11/2015</Date>
</O>
</Os
我想为每个人遍历并添加一行,如果食物=&#39;是&#39;。
<xsl:for-each select="Os/O">
<xsl:sort select="Count" data-type="number" />
<tr>
<td><xsl:value-of select="@type"/></td>
<td><xsl:value-of select="Count"/></td>
<td><xsl:value-of select="Food"/></td>
<td><xsl:value-of select="Owner/@name"/></td>
<td><xsl:value-of select="Owner/Phone"/></td>
<td><xsl:value-of select="Date"/></td>
</tr>
</xsl:for-each>
如果我说食物,我想我能做到:1有食物和食物时:0没有食物和食物时0。然后我可以写一个if语句食物&gt; 0但我不想这样做。
提前致谢。
答案 0 :(得分:0)
如果食物='是',请添加一行。
为什么不简单地使用谓词:
<xsl:for-each select="Os/O[Food='yes']">
...
答案 1 :(得分:0)
以下是<xsl:if>
:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:template match="Os">
<table>
<xsl:for-each select="O">
<xsl:sort select="Count" data-type="number" />
<xsl:if test="Food='Yes'">
<tr>
<td><xsl:value-of select="@type"/></td>
<td><xsl:value-of select="Count"/></td>
<td><xsl:value-of select="Food"/></td>
<td><xsl:value-of select="Owner/@name"/></td>
<td><xsl:value-of select="Owner/Phone"/></td>
<td><xsl:value-of select="Date"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>