Ben türü xs tanımlanan bir eleman ile bir xml şema vardır: Böyle boolean:Bir xs karşılaştırması: XSLT'deki boole değeri?
<xs:element name="useful"
minOccurs="1" maxOccurs="1"
type="xs:boolean"/>
G/aksi değerine göre belirli çıkış şeye XSL engellemek zaman/seçim kullanmaya çalışıyorum o karşılaştırma için aklıma gelen her varyasyonu denedim
<xsl:choose>
<xsl:when test="@useful = 0">No</xsl:when>
<xsl:otherwise>Yes</xsl:otherwise>
</xsl:choose>
onu (@ // kullanarak, @ kaldırarak, 0, 1,) (,) (doğru yanlış kullanarak) ve: böyle, o her zaman 'Evet' yazdırır. Burada neyi yanlış yapıyorum? (Martin Honnen talebi ile)
DÜZENLEME: İşte
kullanılmakta olan XML örneği verilmiştir:
<?xml version="1.0"?>
<functions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="functions.xsd">
<function>
<name>func1</name>
<useful>0</useful>
</function>
<function>
<name>func2</name>
<useful>1</useful>
</function>
</functions>
Bu xsl sorunlara neden olur: şablon Ben bu yüzden Xsl kullanıyorum düşünüyorum : Her bir işlevin birbirine döngü yapması ve her yararlı etiket için belirli bir şey çıkarmaya çalışmak. xsl: şablon sadece xslt'nin üst seviyesinde kullanılabilir, doğru mu?
tam XSLT dosyası
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html><body>
<h2>Functions</h2>
<table border="1">
<tr>
<th>Functions</th>
<th>Useful</th>
</tr>
<xsl:for-each select="functions/function">
<tr>
<td>
<xsl:value-of select="name"/>
</td>
<td>
<xsl:choose>
<xsl:when test="@useful = 0">No</xsl:when>
<xsl:otherwise>Yes</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
</xsl:stylesheet>
İyi soru, +1. Tam bir çözüm için cevabımı görün. –