Et site med kursusmaterialer, der bruges i forbindelse med undervisning i forskellige it relaterede emnerEn skøn grafik du kan nyde mens der undervises.
   

Send spørgsmål eller kommentar til Thor - klik her: Send en kommentar til Thor - omkring undervisning eller kursus  Søg i kursusmaterialerne. Kan bruges i forbindelse med undervisningen eller efter kurset  Til forsiden af kursusmaterialer.dk 

 

XML formatering og transformation / XSLT elementer / xsl element Tag dig ikke af dette flag - det er bare en besked til underviseren om, at der er undervisernote knyttet til XML formatering og transformation kursus, XSLT elementer, xsl element


XSL fjernundervisningskursus

- Vil du gerne på kursus NU?

- Vil du gerne lære i dit eget tempo?

- Har du ikke tid til at tage på kursus ude i byen?

Så køb et kursus i XSL som fjernundervisning på www.it-fjernundervisning.dk


xsl:element

Vi har set, hvordan vi kan generere nye xml dokumenter gennem xsl transformationer, men hvis vi vil have elementnavne i det nye xml dokument, der afhænger af indholdet af det oprindelige xml dokument skal vi have fat i xsl:element. Syntaksen er som følger:

<xsl:element name="element navn"
use-attribute-sets="attributset navn"
namespece="namespaceuri" />

Og et lille eksempel

<xsl:element name="blabla">En lille tekst</xsl:element>

Vil give dette resultat

<blabla>En lille tekst</blabla>

Det er jo ikke specielt sjovt, men vi kan også skrive

<xsl:element name="{.}">En lille tekst</xsl:element>

Kører man dette mod

<Navn>Andrea</Navn>

Vil man få

<Andrea>En lille tekst</Andrea>

ud. Det er i sagens natur vigtigt at indholdet af de elementer man vil bruge som elementnavne er lovlige XML navne - ellers går det galt.

 

Et lille eksempel - først et xml dokument:

<?xml version="1.0" encoding="UTF-8"?>
<Tagnames>
 <Root>Track</Root>
 <Elements>
  <Element>CD</Element>
  <Element>Artist</Element>
  <Element>CD-Title</Element>
 </Elements>
</Tagnames>

 

og dernæst et stylesheet:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" version="1.0" indent="yes"/>
 
 <xsl:template match="/">
  <Music><xsl:apply-templates select="Tagnames/Root"/></Music>
 </xsl:template>
 
 <xsl:template match="Root">
  <xsl:element name="{.}"><xsl:apply-templates select="following-sibling::Elements/Element"/>
</xsl:element>
 </xsl:template>
 
 <xsl:template match="Element">
  <xsl:element name="{.}">bla bla</xsl:element>
 </xsl:template>
 
</xsl:stylesheet>

 


Øvelse

Prøv at lave et XML dokument, der ser sådan her ud ved hjælp af xls:element (spørg mig ikke hvad det skal bruges til):

<?xml version="1.0" encoding="ISO-8859-1"?>
<CD>
 <Queen>Live at Wembley '86</Queen>
 <Queen>Live at Wembley '86</Queen>
 <Queen>A Night at the Opera</Queen>
 <Queen>Queen II</Queen>
 <Queen>A Night at the Opera</Queen>
 <Queen>Queen</Queen>
 <Queen>Queen II</Queen>
 <Sting>The Dream of the Blue Turtles</Sting>
</CD>

Det er vigtigt at du filterer, så det kun er de to kunstnere, der bliver vist, da de andre kunsternavne ikke kan bruges som XML element navne.

   
Spacer Spacer Spacer Spacer