in
La comunitĂ  italiana dedicata a Sviluppatori e Architetti IT delle piattaforme Windows

XSLT: ricerca e confronto

Ultimo messaggio ricevuto il 14-07-2005 13.03 da theFool. 1 risposta(e).
Pagina 1 di 1 (2 elemento/i)
Ordina messaggi: Precedente Successivo
  • 27-04-2005 11.50

    • dakkar
    • Non Valutato
    • Registrato il 27-04-2005
    • Messaggi 1

    XSLT: ricerca e confronto

    Innanzi tutto ciao a tutti!

    Avrei bisogno di una mano che non ci sto cavando i piedi a sta cosa... che mi fa impazzire!

    ...come posso realizzare un XSLT che
    preso il file:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="xeno10R.xsl"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="doc">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="campo" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="campo" type="xs:string" />
    </xs:schema>


    ..una volta trovato un element con ref (e questo lo so fare)
    trovi il relativo name...
    cioe...
    non so andare a cercare il relativo elemento "di definizione" ovvero quello il cui name==ref!
    In pratica vorrei realizzare una ricerca ricorsiva in tutto l'albero che parta dalla radice e mi trovi un element il cui attributo name combacia con il ref trovato.


    aiuto! :_(
    • No log
  • 14-07-2005 13.03 In risposta a

    • theFool
    • Utente Top 10
    • Registrato il 13-07-2005
    • Piacenza
    • Messaggi 127

    Re: XSLT: ricerca e confronto

    Non so se ho capito bene ciò che chiedi, tuttavia....


    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xsl:template match="/">
    <html>
    <body>
    <xsl:for-each select="//xs:element[@ref]">
    <p>
    <xsl:value-of select="position()"/> elemento ---
    ref=<xsl:value-of select="@ref"/>
    type=<xsl:call-template name="getTipo">
    <xsl:with-param name="nomeCampo" select="@ref"/>
    </xsl:call-template>
    </p>
    <hr/>
    </xsl:for-each>
    </body>
    </html>
    </xsl:template>
    <xsl:template name="getTipo">
    <xsl:param name="nomeCampo"/>
    <xsl:value-of select="//xs:element[@name=$nomeCampo]/@type"/>
    </xsl:template>
    </xsl:stylesheet>


    Salva il file come "xeno10R.xsl" nella stessa cartella dove si trova il file xml che hai presentato nella tua domanda, doppio click su quest'ultimo e...
    è quello di cui avevi bisogno?

    ciao!


    • No log
Pagina 1 di 1 (2 elemento/i)
Prelevato da http://www.devspy.com/forums/p/3340/3723.aspx
DevSpy.com 6.0 © 2001-2008 - Alcuni Diritti Riservati
Salvo diversa indicazione, tutti i contenuti sono pubblicati sotto licenza "Creative Commons Attribution-Share Alike 3.0"