Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    xsl e xml ...operazioni sui nodi

    Ciao, sto usando xml/xsl per un sito, ma non riesco a fare questa cosa.

    con queste righe:
    <xsl:template match="bold">

    <xsl:value-of select="text()" />

    </xsl:template>

    dico all'xsl che quando trova un nodo xml <bold> deve trasformare il contenuto in testo grassetto.

    con queste:
    <xsl:template match="br">


    </xsl:template>
    faccio gli acapo (nello stesso modo)

    Vorrei sapere come posso fare per mettere gli a capo in mezzo a un testo grassetto.
    L'xml sarebbe di questo tipo:
    <bold>testo grassetto
    </br>altro testo grassetto</bold>

    Non posso fare <bold>testo</bold>
    </br><bold>testo</bold>
    poichè creo l'xml da programma. c'è un modo per risolvere con xsl?Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    20
    Ciao
    Fammi capire: il tuo xml è tipo

    <bold>akjsdgfad
    </br>ascdgaslcu</bold>

    ?
    Imagination Is more Important than Knowledge [A. Einstein]

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    La soluzione + semplice è inserire nell'xml invece di
    metti &lt; br / &gt;

    che fai prima !!

  4. #4
    Originariamente inviato da corbo
    Ciao
    Fammi capire: il tuo xml è tipo

    <bold>akjsdgfad
    </br>ascdgaslcu</bold>

    ?
    si.
    Il problema è dato dall'xsl, che con le righe che ho postato sopra non mi fa i grassetti, perchè il nodo "bold" è "interrotto" a metà.
    Credo che si debba cambiare l'xsl. (ma come?)

    Il grassetto e l'acapo funzionano..è quando sono "intrecciati" che nasce il problema, cioè quando vado a capo all'interno del testo grassetto.

    &lt; e &gt; non credo c'entrino, perchè
    è qui un nodo xml, che potevo chiamare <acapo></acapo>. Io sto usando xsl per creare l'html.

    Grazie!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    20
    Hai perfettamente ragione.

    &lt; &gt; non c'entrano, perché siamo in un xml e i
    sono da considerarsi nodi dell'albero. anche il testo è un nodo, quindi va trattato come tale.

    Penso che facendo un template che contenga una struttura del tipo

    <xsl:for-each select="*">
    <xsl:choose>
    <xsl:when test="name() = 'br'">


    </xsl:when>

    <xsl:when test="name() != 'br'">
    text();
    </xsl:when>

    </xsl:choose>
    </xsl:for-each>

    dovrebbe funzionare (ammesso che tu abbia solo nodi br o text all'interno del nono bold; altrimenti devi sistemare un po' il choose..). Non ho avuto tempo di provarlo.

    Prova e fammi sapere.

    Hi! :sexpulp:
    Imagination Is more Important than Knowledge [A. Einstein]

  6. #6
    Grazie per l'aiuto.
    Purtroppo però ottengo lo stesso risultato.
    Il motivo è che se ho l'xml:
    <bold>Sabato 20 marzo 2004
    ore 9,30</bold>

    e un xsl che può essere il mio oppure il tuo, ottengo un html cosi':

    Sabato 20 marzo 2004

    Cioè: l'xsl trasforma il contenuto del nodo <bold>, ma quando trova il
    lo esegue, cioè fa un acapo, e poi si ferma..non fa la "seconda parte" del nodo <bold>.

    Forse la soluzione non c'è, ma aspetto prima di rinunciare.
    Grazie ancora, spero tu abbia qualche idea.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.