XSL - for-each

 
Vista:

for-each

Publicado por Guillermo (1 intervención) el 13/02/2009 10:47:49
Mi duda consiste principalmente en por qué "for-each" no actualiza los atributos. Me explico:

Resulta que tengo el siguiente XML:
----------------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="C:Documents and SettingsgbaezaEscritorioXSLPlantilla.xsl"?>
<respuesta_aig>

<info_datos>

<datos_empresa>
<actividad label="Actividad:">1000000</actividad>
<anagrama label="Anagrama:">C.N.M.V.</anagrama>
<direccion label="Direccion:">calle pantomima nº 34 Ciudad de la Alegria 69069 Utopia</direccion>
<representante_legal label="Representante legal:">Alfonso Usía Araujo</representante_legal>
</datos_empresa>

</info_datos>
</respuesta_aig>
----------------------------------------------------------------------------------

Y el siguiente XSL

----------------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

<xsl:output encoding="ISO-8859-1"/>

<!-- ETIQUETA DATOS_EMPRESA -->
<xsl:template match="respuesta_aig/info_datos">

<xsl:for-each select="datos_empresa">

<xsl:value-of select=".//@label"/>
<xsl:value-of select='.' />

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>
----------------------------------------------------------------------------------

Y pretendo mostrar algo como:
Actividad: 1000000
Anagrama: C.N.M.V
Direccion: calle pantomima nº 34 Ciudad de la Alegria 69069 Utopia
Representante legal: Alfonso Usía Araujo

Lo que viene siendo <atributo_nodo> <valor nodo>

Bueno pues la salida que tengo es la siguiente:
Actividad: 1000000
C.N.M.V.
calle pantomima nº 34 Ciudad de la Alegria 69069 Utopia
Alfonso Usía Araujo

Increíblemente solo se incluye la primera vez el nombre del atributo. ¿Alguien sabe por qué o como solucionarlo?

Muchas gracias
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:for-each

Publicado por Mukuykak (8 intervenciones) el 02/03/2009 06:26:17
Saludos, Guillermo.

Para poder obtener el atributo "label" de cada nodo, debes crear un for-each para cada uno de los nodos.

Algo así:

<xsl:for-each select="datos_empresa">

<xsl:value-of select="actividad/@label"/>
<xsl:value-of select='actividad' />

<xsl:value-of select="anagrama/@label"/>
<xsl:value-of select="anagrama"/>

<xsl:value-of select="direccion/@label"/>
<xsl:value-of select="direccion"/>

<xsl:value-of select="representante_legal/@label"/>
<xsl:value-of select="representante_legal"/>
</xsl:for-each

Haz la prueba y espero que te haya sido útil mi respuesta.
Buen día.
=0)
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