XSL - no me ejecuta las templates :(

 
Vista:

no me ejecuta las templates :(

Publicado por Ana (1 intervención) el 21/07/2005 10:01:12
Hola!
Estoy haciendo un slt para mostrar unos resultados que tengo en un xml (creado por el Metrics1.3.5) (os pongo el codigo de los dos abajo)

Mi problema es que lo unico que me aparece es el contenido de Metrics/Cycle/Package, es decir, las xxx, que es justo lo único que no quiero que salga :(

Me he fijado que cuando llega a esta línea (uso el debugger del editor oXygen)
<xsl:apply-templates mode="cabecera"/>
no salta a la plantilla cabecera, y no entiendo por que.

Alguien tiene alguna idea?? Lo curioso es que ayer me funcionaba, y quedaba un html bastante chulo.
Le cambié el xml con el que estaba haciendo las pruebas, y no volvió a funcionar :(

Os dejo debajo el formato del xml y el xsl que he creado.
Gracias!!

Ana

El formato del XML es el siguiente:
-------------------------------------------------------------------------
-------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<Metrics scope="zzz" type="Project" date="2005-07-20" xmlns="http://metrics.sourceforge.net/2003/Metrics-First-Flat">
<Cycle name="yyy" nodes="4" diameter="3">
<Package>xxx</Package>
<Package>xxx</Package>
<Package>xxx</Package>
<Package>xxx</Package>
</Cycle>
<Cycle name="yyy" nodes="3" diameter="2">
<Package>xxx</Package>
<Package>xxx</Package>
<Package>xxx</Package>
</Cycle>
<Metric id = "NSM" description ="Number of Static Methods">
<Values per = "type" total = "20" avg = "0,278" stddev = "0,961" max = "7">
<Value name="zz" source ="zz.java" package ="zz" value ="10" inrange="false"/>
[.........lineas eliminadas (Value)...........]
<Value name="zz" source ="jj.java" package ="zz" value ="2"/>
<Value name="zz" source ="aa.java" package ="zz" value ="2"/>
</Values>
</Metric>

[.........lineas eliminadas (Metric)............]

<Metric id = "NSM" description ="Number of Static Methods">
<Values per = "type" total = "20" avg = "0,278" stddev = "0,961" max = "6">
<Value name="zz" source ="zz.java" package ="zz" value ="7" inrange="false"/>
[.........lineas eliminadas ............]
<Value name="zz" source ="zz" value ="2"/>
<Value name="zz" source ="bb.java" package ="zz" value ="2"/>
</Values>
</Metric>
</Metrics>

Tengo el siguiente xsl creado:
-------------------------------------------------------------------------
-------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- Nodo Raiz -->
<xsl:template match="/">
<html>
<!-- Hoja de Estilos -->
<style type="text/css">
.bannercell {
border: 0px;
padding: 0px;
}
body {
margin-left: 10;
margin-right: 10;
font:normal 80% arial,helvetica,sanserif;
background-color:#FFFFFF;
color:#000000;
}
.a td {
background: #efefef;
}
.b td {
background: #fff;
}
th, td {
text-align: left;
vertical-align: top;
}
th {
font-weight:bold;
background: #ccc;
color: black;
}
table, th, td {
font-size:100%;
border: none
}
table.log tr td, tr th {

}
h2 {
font-weight:bold;
font-size:140%;
margin-bottom: 5;
}
h3 {
font-size:100%;
font-weight:bold;
background: #525D76;
color: white;
text-decoration: none;
padding: 5px;
margin-right: 2px;
margin-left: 2px;
margin-bottom: 0;
}
</style>

<head>
<title>
<xsl:apply-templates mode="cabecera"/>
<!-- Ejecuta la plantilla cabecera -->

</title>
</head>

<body>
<a name="top"></a>

<hr size="1" width="100%" align="left"/>

<!-- ejecuta la plantilla metricascomprobadas -->

<xsl:apply-templates mode="metricascomprobadas"/>

<hr size="1" width="100%" align="left"/>

<!-- ejecuta la plantilla listametricas -->
<xsl:apply-templates mode="listametricas"/>

</body>
</html>
</xsl:template>


<!-- Plantilla cabecera -->
<!-- Parte del nodo Metrics (en /) y muestra la cabecera con algunos datos -->
<xsl:template match="Metrics" mode="cabecera">
Metricas del proyecto: <xsl:value-of select="@scope"/>
</xsl:template>


<!-- Plantilla metricascomprobadas -->
<!-- Parte del nodo Metrics (en /) y muestra la lista de metricas comprobadas -->
<xsl:template match="Metrics" mode="metricascomprobadas">
<h3>Metricas comprobadas en el proyecto <xsl:value-of select="translate(@scope,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/></h3>
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
<tr>
<th>Metrica</th>
<th>Descripcion</th>
<th>Archivos con valores fuera de rango</th>
</tr>
<xsl:for-each select="Metric">
<xsl:sort select="count(Values/Value[@inrange='false'])" order="descending"/>
<tr>
<xsl:call-template name="alternated-row"></xsl:call-template>
<!-- Enlace al listado de valores de la metrica correspondiente -->
<td><a href="#f-{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@description"/></td>
<td><xsl:value-of select="count(Values/Value[@inrange='false'])"/></td>
</tr>
</xsl:for-each>

</table>
</xsl:template>

<!-- Plantilla listametricas -->
<xsl:template match="Metric" mode="listametricas">
<a name="f-{@id}"></a>
<h3>Metrica <xsl:value-of select="@id"/> (<xsl:value-of select="@description"/>)</h3>
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
<tr>
<th>Archivo</th>
<th>Valor</th>
</tr>

<xsl:for-each select="Values/Value[@inrange='false']">
<tr>
<xsl:call-template name="alternated-row"></xsl:call-template>
<td><xsl:value-of select="@package"/><xsl:value-of select="@source"/></td>
<td><xsl:value-of select="@value"/></td>
</tr>
</xsl:for-each>

<xsl:for-each select="Value">
<tr>
<td>Total</td>
<td><xsl:value-of select="@value"/></td>
</tr>
</xsl:for-each>

</table>
<a href="#top">Back to top</a>
</xsl:template>

<!-- plantilla que pone cada fila de la tabla de un color -->
<xsl:template name="alternated-row">
<xsl:attribute name="class">
<xsl:if test="position() mod 2 = 1">a</xsl:if>
<xsl:if test="position() mod 2 = 0">b</xsl:if>
</xsl:attribute>
</xsl:template>


</xsl:stylesheet>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:no me ejecuta las templates :(

Publicado por Iuav (29 intervenciones) el 21/07/2005 22:02:14
Hola Ana
Cuando estás llamando la plantilla Metrics en modo cabecera te has olvidado de poner el atributo select.

<xsl:apply-templates select="Metrics" mode="cabecera"/>

Saludos

Iuav
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar