Sei sulla pagina 1di 29

XSL eXtensible Stylesheet Language

XSLT eXtensible Stylesheet Language Transformation


Xpath XML Path Language Xpointer XML Pointer Language

XSL-fo eXtensible Stylesheet Language-formating Objects


DSSSL Document Style and Semantic Stylesheet Language CSS Cascading Stylesheet

XSL eXtensible Stylesheet Language


Documento XML rbol origen

Procesador XSL Salida rbol resultante Resultado Formato

Transformacin

Hoja de estilo XSL

Documento XML rbol origen

Procesador XSL

rbol resultante Transformacin

Salida CSS Resultado

Hoja de estilo XSL

1 y3 2

rbol de origen !s"ueda de #lantilla Patrn de locali$acin

Plantilla

Transformacin de nodo de origen en nodo resultante

)*

%Ha& m's #lantillas(

S+

Dar formato a 'rbol resultante Mostrar 'rbol resultante

4 8 3

Ti#os de nodos
)odo rai$ )odos de elemento )odos de te,to )odos de atributo )odos de es#acio de nombre )odos de instrucciones de #rocesamiento )odos de comentarios
5

<xsl:template match=.> -lin. rel/0st&les1eet0 t&#e/0te,t2css0 1ref/0modelo3css0 24 </xsl:template>

<?xml version=1.0 encoding=I !"##$%"1 ?> -(,ml5st&les1eet t&#e/0te,t2,sl0 1ref/0arc1i6o3,sl0 (4

<?xml version=1.0 encoding=I !"##$%"1 ?> -,sl7st&les1eet 6ersion/08390 ,mlns7,sl/:1tt#722;;;3;<3org28===2XSL2Transform0 ,mlns7fo/:1tt#722;;;3;<3org28===2XSL2Format0 result5ns/0fo04 . </xsl:st&lesheet>
6

<?xml version='1.0 encoding='I !"##$%"1 ?> <xsl:st&lesheet version='1.0 xmlns:xsl='http://(((.().org/1%%%/* +/,rans-orm ,mlns/:1tt#722;;;3;<3org2TR2R>C51tml?90 result5ns/:04 . </xsl:st&lesheet> <?xml version='1.0 encoding='I !"##$%"1 ?> <xsl:st&lesheet version='1.0 xmlns:xsl='http://(((.().org/1%%%/* +/,rans-orm xmlns='http://(((.().org/,././0"html10 res2lt"ns='> <xsl:template match='/> -HTML4 -H>@D4AAAA-2H>@D4 - *DB4AAAA-2 *DB4 -2HTML4 </xsl:template> <xsl:template match='todo> </xsl:template> . </xsl:st&lesheet>

<?xml version='1.0 encoding='I !"$$#%"1?> <xsl:st&lesheet> -,sl7tem#late matc1/:nodo04 . -2,sl7tem#late4 -,sl7tem#late matc1/:nodo0 . -2,sl7tem#late4 . </xsl:st&lesheet>

-,sl7tem#late matc1/:204 -P4 -,sl76alue5of 24 -2P4 -2,sl7tem#late4 9 - 813

Patrones de locali!aci"n
Operador
/

Operadores de ruta

#tilidad
Separa los niveles de los nodos de su izquierda y derecha y selecciona los nodos hijos (de nivel inferior del nodo especificado Selecciona todos los descendientes (niveles inferiores del nodo especificado a su izquierda Selecciona el nodo actual Selecciona el nodo padre (de nivel superior del nodo actual #$presa alternativas Selecciona un nodo de atri&uto Selecciona todos los nodos *+rupa otros operadores
9

// ! !! " % ' ()

normas/norma norma/Version /normas/norma / normas//Siglas //Texto // ./Siglas .//Siglas . ../norma Siglas|Version Fecha/@orden norma/* Norma/@*
10

$si el nodo actual es normas%T&tulo'

normas/* normas//* */@orden

todos los nodos hi3os del elemento <normas> todos los nodos descendientes de <normas> todos los atri42tos de c2al52ier elemento 52e tengan el nom4re orden

*/norma/Texto|../norma//versin elementos <Texto> 52e son hi3os de <norma>, 52e p2eden estar a c2al52ier nivel del nodo act2al6 pero6 adicionalmente6 tam4i7n locali8a a los elementos <Versin> descendientes de <norma>, 52e a s2 ve8 de4e ser hi3o del padre del nodo act2al
11 1,

/ /escuela_verano /escuela_verano/curso /escuela_verano/curso/estancia /escuela_verano/curso/actividad

9odo rai86 o sea6 el doc2mento e:ala el elemento rai8 <escuela_verano> 9odo del elemento <curso> 9odo del elemento <estancia> 9odo del elemento <actividad>

/escuela_verano/curso/estancia/opciones/Opcin 9odos de los elementos <Opcin> 52e sean descendientes de <estancia> /escuela_verano/curso/actividad/opciones/Opcin 9odos de los elementos <Opcin> 52e sean descendientes de <actividad> /.//estancia//Opcin 9odos de los elementos <Opcin> 52e sean descendientes de <estancia> /.//Opcin /.//@* /.//@nmero ,odos los nodos del elemento <Opcin> ,odos los nodos de los atri42tos ,odos los nodos de atri42tos con nom4re de nmero
12

1-- 1.

Filtros XSL

[operador

patrn]

<xsl:template match !norma [o"ser#aci$n]%& ...... </xsl:template&

>,istencia de nodos

Calor de nodos

13

>,istencia de nodos .... <xsl:template match !norma ['"ser#aci$n]%& <(&>sta norma inclu&e un elemento :*bser6acin07<)* /& <)&<xsl:#al+e,o- /&</)&</(& </xsl:template& ... 1; 1# norma [o"ser#aci$n]/Versi$n norma ['"ser#aci$n] [-echa] Fecha [@orden]
8= & D9 D8 & DD

D< & D?

14

Calor de nodos .... <xsl:template match !norma[siglas !.T/0%]%& <(&1sta norma incl+2e +n elemento !Siglas% c+2o contenido es !.T/0%&<)* /& <)&<xsl:#al+e,o- /&</)&</(& </xsl:template& ..... match 3norma[Siglas 3.T/03]3& .... <xsl:template match !Fecha[@orden !4ltimo%]%& <(&1sta !Fecha% incl+2e +n atri"+to !orden% c+2o contenido es !4ltimo%.<)* /& <)&<xsl:#al+e,o- /&</)&</(& </xsl:template& match 3Fecha[@orden 34ltimo3]3&
DG & DH
15

DE & DF

SImbolo
8 < < & &

*#erador
5e65 5ne5 5lt5 5le5 5gt5 5ge5

Jtilidad Ksensible a ma&!sculasL


7g+al a... 9istinto de... /enor 6+e /enor o ig+al 6+e /a2or 6+e /a2or o ig+al 6+e

SImbolo

*#erador
5ie65 5ine5 5ilt5 5ile5 5igt5 5ige5

Jtilidad Kno sensible a ma&!scL


7g+al a... 9istinto de... /enor 6+e /enor o ig+al 6+e /a2or 6+e /a2or o ig+al 6+e
165 <H D=

Combinaciones de filtros Siglas[. !:SS%] Fecha[@orden !primero%]/../Siglas[. !.T/0%] //norma[Versi$n& !;.<%]/*[@orden8 !primero%] //norma[@id]/Fecha[@orden] SImbolo == || 8 *#erador 5an25 5all5 *#erador 5and5 5or5 5not5 Jtilidad c+al6+iera de los elementos de la lista todos los elementos de la lista
?E 5 E8
17

Jtilidad 'peraci$n l$gica >N9 'peraci$n l$gica '* 'peraci$n l$gica N'T
<= 5 ??

*#eradores de filtro de conjuntos

Conflictos & colisiones >l #rocesador elige la m's #recisa /normas/norma/Texto /normas//Texto //Texto /*

ED & E<

ejercicio

18E? & EG

>lementos XSLT b'sicos <xsl:st2lesheet xmlns:xsl !http://???.?@.org/T*/A9,xsl% indent,res+lt:%2es% lang+age !Ba#aScript;.C%& </xsl:st2lesheet& <xsl:template match !patr$n% lang+age !V)Script%& .... </xsl:template& <xsl:template match !*%& <xsl:de-ine,template,set& <xsl:template match !li"ro%&... </xsl:template& <xsl:template match !a+tor%&... </xsl:template& </xsl:de-ine,template,set& </xsl:template&
19

>lementos XSLT b'sicos

<xsl:appl2,templates select !li"ro% order,"2 !Da+tor/apellidoE Da+tor/nom"redepila%&

<xsl:#al+e,o- select !patr$n% /&

20

*#ciones a6an$adas
85?

<xsl:cop2&

<xsl:-or,each select !patr$n%&... </xsl:-or,each&

E5H

<xsl:-or,each select%//li"ro% order,"2 !DTFt+lo%&


$para xsl:appl2,templates y para xsl:-or,each' = 5 8<

<xsl:i- match !li"ro[7S)N G<H@IJ<IJCKL]%&

8? 5 8F
21

*#ciones a6an$adas <xsl:choose& <xsl:?hen match 3.[(Mginas5gt5N@<<N]3& Oli"ro de tamaPo grandeQ<)*/&</xsl:?hen& <xsl:?hen match 3.[(Mginas5gt5NC<<N]3& Oli"ro de tamaPo medianoQ<)*/&</xsl:?hen& <xsl:?hen match 3.[(Mginas5gt5N;<<N]3& Oli"ro de tamaPo pe6+ePoQ<)*/&</xsl:?hen& <xsl:other?ise& Odemasiado pe6+ePo para ser +n li"roQ<)*/&</xsl:other?ise& </xsl:choose& <xsl:choose& <xsl:?hen match 3.[a+tores[<]]3&;., <xsl:#al+e,oselect 3a+tores/>+tor3 /& O<xsl:#al+e,oselect 3TFt+lo3 /&Q<)*/&</xsl:?hen& </xsl:choose& <xsl:choose& <xsl:?hen match 3.[1ditorial G/cRra?.illL]3& <xsl:#al+e,o- select !TFt+lo% /&<)*/&</xsl:?hen& <xsl:other?ise&</xsl:other?ise& </xsl:choose&

8G

8H

22

8=

*#ciones a6an$adas

<Sxml #ersion 3;.<3 encoding 37S',TTIK,;3S& <xsl:st2lesheet xmlns:xsl 3http://???.?@.org/T*/A9,xsl3& <xsl:template match 3/3& <xsl:-or,each select 3//3& Nom"re de nodo/eti6+eta: <xsl:node,name /& </xsl:-or,each& </xsl:template& </xsl:st2lesheet&

23 D9 5 D8

Creacin de nodos en la salida <xsl:pi name !xml%&#ersion !;.<%</xsl:pi& <xsl:comment&1sto es +n comentario</xsl:comment& <xsl:element name !(*'F1S'*%&1d+ardo</xsl:element& <xsl:attri"+te name !N7V10%&Formaci$n </xsl:attri"+te&

... <xsl:template match !li"ro%& <xsl:cop2& <xsl:attri"+te name !categorFa%&:omp+taci$n</xsl:attri"+te& </xsl:cop2& </xsl:template& ...
24

Creacin de nodos en la salida ... <xsl:template match !li"ro[;]%& <xsl:cop2& <xsl:atti"+te name !categorFa%&U/0</xml:attri"+te& </xsl:cop2& </xsl:template& ... ... <xsl:template match !//1N0>:1%& <>& <xsl:attri"+te name !hre-%&<xsl:#al+e,o- /& </xsl:attri"+te& /ail to 1d+ardo (eis </>& </xsl:template& ... <> hre- !epeis@+gr.es%&/ail to 1d+ardo (eis</>&
25

Creacin de nodos en la salida ... <xsl:template match !//F7RV*>%& <7/R& <xsl:attri"+te name !src%&<xsl:#al+e,o- /& </xsl:attri"+te& </7/R& </xsl:template& ... <7/R src !-igs/logo.gi-%&</7/R& ... <xsl:template match !//F7RV*>%& <7/R ?idth !C<<% height !HI% alt ![0ogotipo]%& <xsl:attri"+te name !src%&<xsl:#al+e,o- /& </xsl:attri"+te& </7/R& </xsl:template& ... <7/R src !-igs/logo.gi-% ?idth !C<<% height !HI% >lt ![0ogotipo]%&</7/R&

26

<xsl:cdata&1sto es +na secci$n :9>T></xsl:cdata&

<8[:9>T>[1sta es +na secci$n :9>T>]]&

<xsl:entit2,re- name !cop2%&W</xsl:entit2,re-&

<81NT7TX cop2 GWL&

27 DD 5 D?

Muiones KSCR+PTSL en XSL ... <xsl:script lang+age !V)Script%& F+nction Fecha.oraOQ Fecha.ora No?OQ 1nd F+nction </xsl:script& ... ... <xsl:script lang+age !V)Script%& F+nction (+lgadas>:mOp+lgQ (+lgadas>:m p+lg*C.IY 1nd F+nction </xsl:script& ... <xsl:script lang+age !leng+aZe[de[g+i$n%& <8[:9>T>[ ... ]]& </xsl:script&

28

Muiones KSCR+PTSL en XSL

<xsl:e#al lang+age !leng+aZe[de[g+i$n%& ... </xsl:e#al&

<xsl:e#al lang+age !V)Script%&Fecha.oraOQ </xsl:e#al&

<xsl:e#al lang+age !V)Script%&No?OQ</xsl:e#al&

29 DE 5 DF

Potrebbero piacerti anche