Xslt..qualcuno può aiutarmi?

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Ichigo85
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1092
Iscrizione: venerdì 20 ottobre 2006, 15:49

Xslt..qualcuno può aiutarmi?

Messaggio da Ichigo85 »

Salve gente!come da oggetto avrei bisogno di una mano...per ora è una domanda semplice semplice..In pratica per questo progetto universitario devo usare xslt per creare un foglio di formattazione, e avrei bisogno di capire con la procedura che condizione devo mettere per controllare la presenza di un nodo nell'albero xml. Qualcuno mi può rispondere per favore?

Ad esempio , io devo controllare che nell'albero xml esista un elemento titolo, e nel caso formattarlo in una certa maniera. Può andare questo frammento di codice?

Codice: Seleziona tutto

<xsl:if test="child::titolo">
        <title>
            <xsl:value-of select="titolo"/>
        </title>
</xsl:if>
Ultima modifica di Anonymous il domenica 3 giugno 2007, 16:41, modificato 1 volta in totale.
"Se schivo, non verrò tagliato!
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: Xslt..qualcuno può aiutarmi?

Messaggio da prampa »

ma devi controllare che esista almeno un elemento titolo specifico (ad esempio titolo "vattelapesca") e in questo caso formattarne il contenuto ipotizzo su html, oppure tutti gli elementi titolo devono essere formattati in output presumibilmente in formato tabellare?
In ogni caso guarda anche il seguente indirizzo h**p://xml.html.it/guide/lezione/1853/xsl-extensible-stylesheet-language/
per altre informazioni posta anche una parte del tuo xml e come vorresti in output il risultato....approssimativamente tanto per capire....la trasformazione la fai lato client o lato server?
ciao
Avatar utente
Ichigo85
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1092
Iscrizione: venerdì 20 ottobre 2006, 15:49

Re: Xslt..qualcuno può aiutarmi?

Messaggio da Ichigo85 »

devo controllare che esista un elemento titolo sotto la radice, e nel caso esista ne formatto il contenuto in html. Però questo elemento titolo sotto radice non è richiesto obbligatoriamente..e non sapevo come fare per controllarne l'esistenza..comunque guardo anche questo link, grazie!
L'xml non lo posso postare..perchè sinceramente non ne ho uno pronto, al max potrei postare l' xml schema a ci devo fare riferimento per gli elementi da formattare. C'ho pensato..e il mio problema in realtà è che io ho diversi elementi titolo nell'xml, e devo riuscire a distinguere quello sotto radice dagli altri. Per questo avevo pensato a una soluzione del genere. la trasformazione comunque è lato server.

Questa cosa comunque mi può servire anche in seguito perchè il mio scopo è quello di fare un enorme file xsl che mi formatti xml di diverso tipo (è un progetto un pò complicato da spiegare) e quindi avevo bisogno di capire come funziona xsl:if in modo da distinguere la presenza di un sottoalbero o di un altro nel file xml da formattare.

Spero di aver spiegato in una maniera umana...non ne sono troppo sicuro!
Ultima modifica di Anonymous il domenica 3 giugno 2007, 17:09, modificato 1 volta in totale.
"Se schivo, non verrò tagliato!
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: Xslt..qualcuno può aiutarmi?

Messaggio da prampa »

Ichigo85 ha scritto: devo controllare che esista un elemento titolo sotto la radice, e nel caso esista ne formatto il contenuto in html. Però questo elemento titolo sotto radice non è richiesto obbligatoriamente..e non sapevo come fare per controllarne l'esistenza..comunque guardo anche questo link, grazie!
L'xml non lo posso postare..perchè sinceramente non ne ho uno pronto, al max potrei postare l' xml schema a ci devo fare riferimento per gli elementi da formattare. C'ho pensato..e il mio problema in realtà è che io ho diversi elementi titolo nell'xml, e devo riuscire a distinguere quello sotto radice dagli altri. Per questo avevo pensato a una soluzione del genere. la trasformazione comunque è lato server.

Questa cosa comunque mi può servire anche in seguito perchè il mio scopo è quello di fare un enorme file xsl che mi formatti xml di diverso tipo (è un progetto un pò complicato da spiegare) e quindi avevo bisogno di capire come funziona xsl:if in modo da distinguere la presenza di un sottoalbero o di un altro nel file xml da formattare.

Spero di aver spiegato in una maniera umana...non ne sono troppo sicuro!

potrebbe quindi essere sufficiente una ricerca xpath. Applicando un template di ricerca dell'elemento titolo sotto la root...se lo trova bene e lo formatti come piu' ti piace, altrimenti non fa nulla. Gli altri elementi titolo sotto altri nodi non verranno presi in considerazione. Pero', se possibile, cambia nome all'elemento sotto root per distinguerlo dagli altri: non è pero' indispensabile! Tu comunuqe hai un solo elemento titolo sotto roor. Giusto? Nel link ci sono un po' di informazioni che sicuramente potranno tornarti utili. La trasformazione lato server è php o java?
ciao
Avatar utente
Ichigo85
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1092
Iscrizione: venerdì 20 ottobre 2006, 15:49

Re: Xslt..qualcuno può aiutarmi?

Messaggio da Ichigo85 »

Guarda .. l'elemento titolo non è modificabile perchè sono specifiche del progetto. Io con xpath sono davvero una frana .. comunque ci provo e intanto guardo il link. Penso che la trasformazione sia in php.
grazie.
"Se schivo, non verrò tagliato!
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: Xslt..qualcuno può aiutarmi?

Messaggio da prampa »

prova con qualche semplice esempio

Codice: Seleziona tutto

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <html>
      				<xsl:for-each select="catalog/object"> 
				<tr>
					<td class="tab" width="15%"><xsl:value-of select="label"/> 		</td>
	      		      	</tr>
      				</xsl:for-each>

	</html>
</xsl:template>
</xsl:stylesheet>
in questo semplice esempio il template ricerca dalla radice tutti gli elementi gerarchicamente collegati a root catalog -> object e visualizza in una colonna di tabella l'elemento label.
L'xml è


69
Non è detto che sia la soluzione per te, ma da qualche parte devi pur iniziare.....
ciao
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti