如何解决如何在xsl中使用小于'<'?
好吧,就像问题一样,如何在 xsl 中正确使用 '
这里附上xml和xsd代码
xml:
<?xml version="1.0"?>
<?xml-stylesheet type ="text/xsl" href = "ejercicio2parte4.xslt"?>
<musica>
<cd>
<titulo_del_album>Los magroños</titulo_del_album>
<artista>Julian</artista>
<nombre_cancion>El cairo</nombre_cancion>
<duracion>4.50s</duracion>
<nombre_cancion>Tunez</nombre_cancion>
<duracion>4.50</duracion>
<sello_discografico>Nuclear Blast Records</sello_discografico>
<año_de_publicacion>2004</año_de_publicacion>
</cd>
<cd>
<titulo_del_album>Scarecrow</titulo_del_album>
<artista>Avantasia</artista>
<nombre_cancion>Scarecrow</nombre_cancion>
<duracion>7.11</duracion>
<nombre_cancion>I dont belive in your love</nombre_cancion>
<duracion>4.50</duracion>
<sello_discografico>AFM Records</sello_discografico>
<año_de_publicacion>1999</año_de_publicacion>
</cd>
</musica>
和 XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<body>
<h2>musica</h2>
<table border="1">
<tr bgcolor="grey">
<th>Titulo del album</th>
<th>Artista</th>
<th>nombre cancion</th>
<th>duracion</th>
<th>Sello discografico</th>
<th>Año de publicacion</th>
</tr>
<xsl:for-each select="musica/cd">
<xsl:if test= "duracion < 5.00">
<tr>
<td>
<xsl:value-of select="titulo_del_album"/>
</td>
<td>
<xsl:value-of select="artista"/>
</td>
<td>
<xsl:value-of select="nombre_cancion"/>
</td>
<td>
<xsl:value-of select="duracion"/>
</td>
<td>
<xsl:value-of select="sello_discografico"/>
</td>
<td>
<xsl:value-of select="año_de_publicacion"/>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
解决方法
我无法让它发挥作用
它运行良好。但是,您可能忽略了 XML 示例中的每个 cd
都有 两个 duracion
子元素的事实。在这种情况下,您的测试:
duracion < 5.00
如果至少一个持续时间少于 5 分钟,将返回 true - 这对于给定示例中的两个 cd
都是如此。
OTOH,在 XSLT 1.0 中的指令:
<xsl:value-of select="duracion"/>
将仅返回 first duracion
的字符串值。
您似乎在使用 XSLT 1.0。在 XSLT 1.0 中,仅支持数字比较,而不支持字符串比较。 1.0 中的“translate() 或 substring-before()
。
然而,如果你有两个 duracion
元素并且其中一个是数字,那么错误的结果并不重要,因为一个真实的结果就足够了......
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。