Trip – Trick – XSL – Comparar el valor del nodo actual con el valor del nodo anterior

A veces tenemos la necesidad de comparar el valor del nodo actual con el valor del nodo anterior. Por ejemplo si tenemos un XML:


            1
            uno

            1
            uno

            2
            dos

            2
            dos

            3
            tres

            3
            tres

            3
            tres

            4
            cuatro

            4
            cuatro

            4
            cuatro

            4
            cuatro

Tenemos nuestro XSLT que recuperara los valores diferentes del nodo hijo:


                <p></p>

                    <p></p>

EL preceding-sibling recupera todos los nodos que son anteriores al nodo actual, pero como nos interesa el anterior y adyacente por eso recuperamos el de la primera posición. Al transformar el XML con la hoja de estilo nos deberia retornar:


            <p>uno</p>
            <p>dos</p>
            <p>tres</p>
            <p>cuatro</p>

Referencia:
http://www.zvon.org/xxl/XSLTreference/Output/index.html

3 comentarios para “Trip – Trick – XSL – Comparar el valor del nodo actual con el valor del nodo anterior”

  1. Alex Pérez Dice:

    Interesante!

    Yo estoy haciendo mis primeros pasos con XSLT y es algo muy potente para tratar XML. Normalmente tengo que procesar mensajes de aplicaciones que vienen como XML, y con XSLT es mucho más eficiente que con JS.

    Una pregunta, los bloques XML que has insertado en el post: estan dentro de un “< code >” ? estoy buscando la combinación para que puedan ser mínimamente legibles en el mío, pero muchas veces wordpress se “come” los tags XML dejandomelo inservible. o quizas tienes los CSS cusstomizados?

    Saludos!

  2. Eduardo Sanchez Vera Dice:

    Hola, para ver código en wordpress puedes utilizar [ sourcecode ] y definir el estilo como xml. Via: http://faq.wordpress.com/2007/09/03/how-do-i-post-source-code/

  3. Diego Dice:

    Excelente artículo!
    Era precisamente lo que estaba necesitando y fue en el único sitio en el que lo encontré.
    Muchas gracias.

Escribe un comentario