有人可以帮我调试这个 XSLT 吗?我不能为此花太多时间,因为我这周有很多事情要做,我已经尝试了至少半个小时,但仍然找不到它有什么问题。我在 XSLT 方面的技能是有限的,而且我们在课堂上被问得太多了,此外,Firefox 并没有提供太多帮助,除了抱怨尖锐的字符(á、é...)。
这里贴一个pastie链接,主要是代码太大:http ://pastie.org/6452944
再次,谢谢!
有人可以帮我调试这个 XSLT 吗?我不能为此花太多时间,因为我这周有很多事情要做,我已经尝试了至少半个小时,但仍然找不到它有什么问题。我在 XSLT 方面的技能是有限的,而且我们在课堂上被问得太多了,此外,Firefox 并没有提供太多帮助,除了抱怨尖锐的字符(á、é...)。
这里贴一个pastie链接,主要是代码太大:http ://pastie.org/6452944
再次,谢谢!
一个体面的 XML 编辑器可能会告诉您问题所在:
<table>
标签,你应该有一个结束</table>
标签。&eq;
在标准 XML 中没有意义;你应该使用=
<xsl:choose>
不允许select
属性还有一个逻辑错误:
@observaciones = urgente
测试是否@observaciones
等于节点 urgente
(在这种情况下不存在)。您将需要使用@observaciones = 'urgente'
.当这些都修复后,我想它会起作用。这是一个固定版本:
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="/empresa">
<html>
<head>
<title>
<xsl:value-of select="sede/nombre" />
</title>
<link rel="stylesheet" href="empresa.css" />
</head>
<body>
<table>
<tr class="titulo">
<td>
<p>
<xsl:value-of select="sede/nombre" />
</p>
</td>
<td rowspan="2">
<img alt="empresa" src="empresa.png" />
</td>
</tr>
<tr class="subtitulo">
<td>
<p>Albaran</p>
</td>
</tr>
<xsl:apply-templates select="pedido">
<xsl:sort select="@id" />
</xsl:apply-templates>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="pedido">
<tr class="cuerpo">
<td rowspan="3">
<span>
<xsl:value-of select="sucursal/nombre" />
</span>
<br />
<span>
<xsl:value-of select="sucursal/region" />
</span>
</td>
</tr>
<tr class="fecha">
<td>
<p>
Albaran con fecha de: <xsl:value-of select="fecha" />
</p>
</td>
</tr>
<tr class="npedido">
<xsl:apply-templates select="@id" />
</tr>
<tr class="articulos">
<td>
<table>
<tr>
<th>
<span>Cod. de articulo</span>
</th>
<th>
<span>N. de unidades</span>
</th>
<th>
<span>Precio por unidad</span>
</th>
<th>
<span>Observaciones</span>
</th>
</tr>
<xsl:apply-templates select="articulo">
<xsl:sort select="@id" />
</xsl:apply-templates>
</table>
</td>
</tr>
<tr class="observaciones">
<td>
<xsl:apply-templates select="@observaciones[. = 'urgente' or
. = 'incompleto']" />
</td>
</tr>
</xsl:template>
<xsl:template match="articulo">
<tr>
<xsl:apply-templates select="@id" />
<xsl:apply-templates select="@cant" />
<xsl:apply-templates select="@precioud" />
<xsl:call-template name="Cell">
<xsl:with-param name="value" select="@observaciones" />
</xsl:call-template>
</tr>
</xsl:template>
<xsl:template match="articulo/@* | pedido/@id"
name="Cell">
<xsl:param name="value" select="." />
<td>
<span>
<xsl:value-of select="$value" />
</span>
</td>
</xsl:template>
<xsl:template match="@observaciones">
<strong>
<xsl:value-of select="concat(translate(substring(., 1, 1), 'it', 'IT'),
substring(., 2))"/>
</strong>
</xsl:template>
</xsl:stylesheet>