Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2009, 08:45
jonnyeus
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 14 años, 7 meses
Puntos: 0
XSLT 2.0 y ficheros de texto plano con claves y valores

Hola a todos, tengo un problema que no sé cómo puedo darle una solución. Os explico un poco la situación. Estoy utilizando ficheros de texto plano para hacer que una aplicación web pueda ser multi-idioma. Los fichero tienen el siguiente formato:

clave1=valor1
clave2=valor2
clave3=valor3
clave4=valor4
....
claveN=valorN

En concreto solo necesito extraer dos valores, por ejemplo los valores de clave3 y clave4. Con el siguiente XSL consigo abrir el fichero y procesarlo por líneas, pero luego no se me ocurre cómo guardar los 2 valores que me intersan en unas variables:

Código:
<xsl:stylesheet xmlns:xsl="el foro no me permite enlaces" version="2.0">
    
    <xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>
    
    <xsl:variable name="fich" select="'nombredelfichero.txt'"/>
    <xsl:variable name="clave3"/>
    <xsl:variable name="clave4"/>

    <!-- Busco el nodo raíz del XML a transformar -->
    <xsl:template match="/Respuesta">
        
        <!-- Proceso cada línea del fichero de texto plano -->
        <xsl:for-each select="tokenize(unparsed-text($fich), '\r?\n')">
            
            <!-- Separo la clave y el valor -->
            <xsl:for-each select="tokenize(., '=')">
                
                <!-- Miro si es la línea que me interesa, es decir busco la clave3 -->
                <xsl:analyze-string select="." regex="clave3">
                    <xsl:matching-substring><--! AQUÍ YA NO SÉ QUE HACER --></xsl:matching-substring>
                </xsl:analyze-string>
            </xsl:for-each>
        </xsl:for-each>
        
    </xsl:template>

</xsl:stylesheet>
Cuando estoy en la clave3 en el analyze-string he intentado utilizar following-sibling() pero no está permitodo. ¿Alguien me sabría decir cómo puedo obtener el valor de clave3 y guardarlo en la variable?

Gracias de antemano.