XSLT 1. David Massey MBIB

Like dokumenter
XSLT 2. David Massey MBIB

XML Schema. David Massey MBIB

HØGSKOLEN I SØR-TRØNDELAG

HTML-del. 1. <!-- ikke slett min kode, vær så snill --> er a) en HTML stil-tag b) en CSS stil-tag c) en HTML kommentar-tag d) en CSS kommentar-tag

Semistrukturerte data og XML

1. XHTML. Innhold Innledning

EndNote referansehåndteringsprogram. HiVe biblioteket

Intro til WWW, HTML5 og CSS

Vanlige spørsmål om EndNote (april 2013)

HVA ER XML? extensible Markup Language En standardisert måte å strukturere ulike typer data Åpent format Enkelt:

XML. Figur Et eksempel på et XML-dokument

Grunnleggende om websider og HTML-kode

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring

1. Lage og vise et enkelt XML-dokument

Kom i gang med Zotero: En enkel veiledning

Vanlige spørsmål om EndNote (september 2015)

Compello Fakturagodkjenning Versjon 10.5 As a Service. Tilgang til Compello Desktop - Regnskapsføring og Dokument import

Last ned Norwegian mountains - Per Roger Lauritzen. Last ned

Citation and reference tools for your master thesis

Vanlige spørsmål om EndNote

Vanlige spørsmål om EndNote

</html> </head> <form action= rtkst.php > <p> Fornavn? <input type= text name= fornavn <input type= submit />

9. ASP med databasekopling, del II

Citation and reference tools for your master thesis

CASCADING STYLESHEETS (CSS)

Citation and reference tools for your master thesis

Verktøy for å håndtere siteringer og referanser i masteroppgaven. Citation and reference tools for your master thesis. Citations and references

Last ned Gjøre alle ting nye - Henri J.M. Nouwen. Last ned

Noen ArcGIS-operasjoner

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

Vanlige spørsmål om EndNote (mars 2015)

Last ned Geometry - Ole Petter Jensen. Last ned

Last ned Boka om meg. Astrid Lindgrens verden - Astrid Lindgren. Last ned

Vanlige spørsmål om EndNote

Last ned Madagaskar Og Dets Beboere. - Lars Nielsen Dahle. Last ned

HØGSKOLEN I SØR-TRØNDELAG

Last ned. Beskrivelse mangler. Se gjerne forlagets (Vigmostad Bjørke) hjemmeside, der det kan finnes mer informasjon.

Biblioteket. EndNote referansehåndteringsprogram

Last ned Illustreret Norges Historie. [With Plates.]Vol.I - Ole Andreas Verland. Last ned

file:///c:/users/michaelp/sites/dkdm/dw6/dreamweaver6.html

1. Mer om oppbyning av XML-dokument

DIGITALE MODELLER OG MENTALE MODELLER

EndNote Svar på de vanligste spørsmål og problemer

Last ned 101 villmarkstips - Lars Monsen. Last ned. Last ned e-bok ny norsk 101 villmarkstips Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Last ned Steffen Dahl - Steffen Dahl. Last ned. Last ned e-bok ny norsk Steffen Dahl Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

the web Introduksjon Lesson

Vanlige spørsmål om EndNote

Elektronisk innlevering/electronic solution for submission:

Hvordan aktivere pakker og enkelttitler

Kartleggingsskjema / Survey

Last ned Nøklene - Tor Edvin Dahl. Last ned. Last ned e-bok ny norsk Nøklene Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Hvorfor ikke bruke Word?

Hangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon

Zotero hurtigstartguide

NCE TOURISM FJORD NORWAY. FJORDNETT INTERNETTFORUM 2012 Bergen, 12./13. juni 2012

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN

EKSAMEN Web-publisering

Markeringsspråk og XML

Innhold. Bruksanvisning for Zotero (oppdatert 11/11/2017)

Last ned Arne Knudsen - Arne Knudsen. Last ned. Last ned e-bok ny norsk Arne Knudsen Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Last ned Roald Amundsen - Hans Olav Thyvold. Last ned. Last ned e-bok ny norsk Roald Amundsen Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Vanlige spørsmål om EndNote (april 2016)

Radix en enkel innføring

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

EKSAMEN Webpublisering

Innføring i bruk av CGI4VB

Information search for the research protocol in IIC/IID

Last ned Historisk-Geographisk. Beskrivelse Over Kongoriget Norge I Middelalderen. - Peder Andreas Munch. Last ned

Læringsmål og pensum. Hvordan virker webteknologi? (klient-tjener arkitektur) HTML - virkemåte. Nettleser: Firefox, Opera, Safari

EndNote referansehåndteringsprogram

E-bøker. Ellen Wiger, bokselskap.no. Workshop: Bibliotek- og informasjonsvitenskap, HIOA, januar-februar økt: om Bokselskap og tekstkoding

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

Bruksanvisning for Zotero (18/12/2014)

Call function of two parameters

Last ned Generell patologi - Tore Taraldsen. Last ned

Last ned Generell patologi - Tore Taraldsen. Last ned. Last ned e-bok ny norsk Generell patologi Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Last ned En innføring i makroøkonomi - David A. Moss. Last ned

Last ned Kjobenhavns Kirker Og Klostere I Middelalderen. - Holger Frederik Rordam. Last ned

file://c:\etext\document\dlftools.xsl

Publiseringsveiledning for

ShareCat Bruker Manual

MOD 250 Avansert programvareteknologi Extensible Markup Language, XML

Last ned Alltid - i lyset - Anne Kari B. Solstad. Last ned

Transkript:

XSLT 1 David Massey MBIB4140 12-9-2017

Structured information toolkit "XML's new playmates include stylesheets for display and transformation, strong methods for linking resources, tools for data manipulation and querying, error checking and structure enforcement tools, and a plethora of development environments. As a result of these applications, XML is assured a long and fruitful career as the structured information toolkit of choice." Ray, Learning XML, 2003, s. xi

XSLT "XSLT, the Extensible Stylesheet Language for Transformation, is an official recommendation of the World Wide Web Consortium (W3C). It provides a flexible, powerful language for transforming XML documents into something else, such as an HTML document, another XML document, a Portable Document Format (PDF) file, [...] a flat text file, a JPEG file, or most anything you want. You write an XSLT stylesheet to define the rules for tansforming an XML document, and the XSLT processor does the work." Tidwell, XSLT, 2008, s. 1

XML XSLT XSLT prosessor Result

Arbeidsflyt 1. Lag eller finn et XML-dokument som skal prosesseres 2. Lag et XSLT-stilark 3. Knytt XSLT-stilarket til XML-dokumentet 4. Kjør transformasjonen

XML eksempel <?xml version="1.0" encoding="utf-8"?> <books> <book number="b1"> <title>how to Build a Digital Library</title> <authors> <author> <first_name>ian H.</first_name> <family_name>witten</family_name> </author> <author> <first_name>david</first_name> <family_name>bainbridge</family_name> </author> </authors> <year>2003</year> <publisher>morgan Kaufmann Publishers</publisher> <isbn>1-55860-790-0</isbn> </book>

XML eksempel, forts. <book number="b2"> <title>understanding Digital Libraries</title> <edition>2</edition> <authors> <author> <first_name>michael</first_name> <family_name>lesk</family_name> </author> </authors> <year>2005</year> <publisher>morgan Kaufmann Publishers</publisher> <isbn>1-55860-924-5</isbn> </book> </books>

Illustrasjon: Tor Arne Dahl

Prøv selv Last ned books.xml fra: http://edu.hioa.no/mbib4140/h17/ressurser/ xml/ Åpne books.xml i XML Copy Editor Opprett et nytt XSLT (XSL Stylesheet (*.xsl) fra listen Lagre XSLTen som books.xsl

Prøv selv Åpne books.xml og kobler den til books.xsl med XML > Associate > XSLT Stylesheet En ny linje legges til XML-dokumentet som vil ligne dette:

Prøv selv Ha books.xml åpent Kjør XSL transformasjon: XML > XSL Transform... F8 Resultatet vises i et nytt dokumentfanekort

Traversing Vi begynner fra rotnoden (/) Vi traverserer en node om gangen og det er alltid kun en gjeldende node

<xsl:template match="/"> Hva i input-dokumentet skal behandles? Mønstergjenkjenning Angi i match-attributtet Bruk XPath syntaks / matcher rotnoden <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="/"> </xsl:template> </xsl:stylesheet>

<xsl:value-of /> Hva skal skrives ut? Angi i verdien til select-attributtet Relativt til gjeldende node / books book book title title <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="/"> <xsl:value-of select="books/book/title" /> </xsl:template> </xsl:stylesheet>

Prøv selv Oppdater books.xsl Legg til <xsl:value-of select="books/book/title" /> på riktig sted Husk å lagre books.xsl Kjør prosesseringen: XML > XSL Transform... (eller F8) Endre select slik at stilarket skriver ut family_name

XPath navigering select="." gjeldende node select="/" rotnoden select="books" relativt sti select="/books" absolutt sti select="books/book/authors/author/family_name" select="books//family_name"

<xsl:for-each> Brukes for å traversere et bestemt sett av noder. F.eks. alle bøkene i XML dokumentet. <xsl:template match="/"> <xsl:for-each select="books/book"> <xsl:value-of select="title" /> </xsl:for-each> </xsl:template> / books book book title title

<xsl:template match="/"> <xsl:for-each select="books/book"> <xsl:value-of select="title" /> </xsl:for-each> </xsl:template> / books book book title title <xsl:template match="/"> <xsl:for-each select="books/book"> <xsl:value-of select="title" /> </xsl:for-each> </xsl:template> / books book book title title <xsl:template match="/"> <xsl:for-each select="books/book"> <xsl:value-of select="title" /> </xsl:for-each> </xsl:template> / books book book title title

Prøv selv Endre XSLTen slik at det skriver ut titlene fra XML dokumentet Endre XSLTen slik at etternavn av forfatterne skrives ut istedenfor titlene Endre XSLTen slik at både fornavn og etternavn av forfatterne skrives ut

<xsl:text> Legg til tekst <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="/"> <xsl:for-each select="books/book/authors/author"> <xsl:value-of select="first_name" /><xsl:text> </xsl:text> <xsl:value-of select="family_name" /> <xsl:text> </xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet>

Prøv selv Bruk <xsl:text> for å forbedre resultatet som produseres av books.xsl Endre books.xsl slik at stilarket produserer følgende resultat: Fornavn: Ian H. Etternavn: Witten Fornavn: David Etternavn: Bainbridge Fornavn: Michael Etternavn: Lesk

XML til XML XSLT transformasjon XML XML resultat <?xml version="1.0" encoding="utf-8"?> <books> <book number="b1"> <title>how to Build a Digital Library</title> <authors> <author> <first_name>ian H.</first_name> <family_name>witten</family_name> </author> <author> <first_name>david</first_name> <family_name>bainbridge</family_name> </author> </authors> <year>2003</year> <publisher>morgan Kaufmann Publishers</publisher> <isbn>1-55860-790-0</isbn> </book> <?xml version="1.0" encoding="utf-8"?> <forfattere> <forfatter> <fornavn>david</fornavn> <etternavn>bainbridge</etternavn> </forfatter> <forfatter> <fornavn>michael</fornavn> <etternavn>lesk</etternavn> </forfatter> </forfattere>

Legg til markup <xsl:template match="/"> <forfattere> <xsl:for-each select="books/book/authors/author"> <forfatter> <fornavn><xsl:value-of select="first_name" /></fornavn> <etternavn><xsl:value-of select="family_name" /></etternavn> </forfatter> </xsl:for-each> </forfattere> </xsl:template>

Prøv selv Opprett et nytt XSLT-stilark, books2.xsl Legg til endringene fra forrige lysark Endre koblingen i books.xml slik at books2.xsl brukes for transformasjonen Prosesser XML-dokumentet Endre XSLT-stilarket slik at titler skrives ut istedenfor forfatterne. Husk å endre markupen

Aaagh Hvis du får denne feilmedling når du forsøke å prosessere XMLdokumentet kan en restart av XML Copy Editor løser problemet.

<xsl:sort /> <xsl:template match="/"> <forfattere> <xsl:for-each select="books/book/authors/author"> <xsl:sort select="family_name" /> <forfatter> <fornavn><xsl:value-of select="first_name" /></fornavn> <etternavn><xsl:value-of select="family_name" /></etternavn> </forfatter> </xsl:for-each> </forfattere> </xsl:template>

Prøv selv Bruk xsl:sort for å endre rekkefølgen på titlene slik at de sorteres etter utgivelsesdato. Attributtet order kan brukes for å bestemme rekkefølgen. Verdiene er enten ascending eller descending. Prøv begge

XML til XML XSLT prossessering XML XML resultat <?xml version="1.0" encoding="utf-8"?> <books> <book number="b1"> <title>how to Build a Digital Library</title> <authors> <author> <first_name>ian H.</first_name> <family_name>witten</family_name> </author> <author> <first_name>david</first_name> <family_name>bainbridge</family_name> </author> </authors> <year>2003</year> <publisher>morgan Kaufmann Publishers</publisher> <isbn>1-55860-790-0</isbn> </book> <?xml version="1.0" encoding="utf-8"?> <bøker> <bok> <tittel>understanding Digital Libraries</tittel> <år>2005</år> </bok> </bøker>

<xsl: if> <xsl:template match="/"> <bøker> <xsl:for-each select="books/book"> <xsl:sort select="year" order="descending" /> <xsl:if test="contains(authors/author/family_name, 'Lesk')"> <bok> <tittel><xsl:value-of select="title" /></tittel> <år><xsl:value-of select="year" /></år> </bok> </xsl:if> </xsl:for-each> </bøker> </xsl:template>

Prøv selv Prøv eksempelet fra forrige lysarket Endre stilarket slik at kun bøker skrevet etter 2003 kommer med i resultatet. Tips: <xsl:if test="year > 2003">

<xsl:choose> <xsl:template match="/"> <bøker> <xsl:for-each select="books/book"> <bok> <tittel><xsl:value-of select="title" /></tittel> <xsl:choose> <xsl:when test="year > 2004"> <alder><xsl:text>nytt!</xsl:text></alder> </xsl:when> <xsl:otherwise> <alder><xsl:text>gammelt!</xsl:text></alder> </xsl:otherwise> </xsl:choose> <år><xsl:value-of select="year" /></år> </bok> </xsl:for-each> </bøker> </xsl:template>

Prøv selv Endre books2.xsl fra if til choose, when og otherwise

Saxon Windows på HiOA: Transfom er navnet på programmet -s: hvilken XML-dokument? -o: hvor skal resultatet lagres? -xsl: hvilken XSLT-stilatk?

Prøv selv Lag html.xls som prosesserer books.xml og lager output som HTML Siden skal inneholder en overskrift (h1) og en tabell (table) Relevant tags er: html, head, title, h1, table, tr, th og td Tabellen skal bestå av tre kolonner: tittel, utgivelsesår og ISBN Mer info: https://www.w3schools.com/html/html_tables.asp Strukturen vises på neste lysark Fjern XML-deklarasjonen fra første linjen. Lagre resultatet som books.html og klikk på globusen for å se resultatet i en nettleser Forts.

Prøv selv Fjern: <?xml version="1.0" encoding="utf-8" standalone="yes"?> <html> </html> <head> </head> <body> </body> <title>bøker</title> <h1>bøker</h1> <table> <tr> </table> </tr> <tr> </tr> <td>how to Build a Digital Library</td> <td>2003</td> <td>1-55860-790-0</td> <td>understanding Digital Libraries</td> <td>2005</td> <td>1-55860-924-5</td> Legg gjerne til overskrifter på kolonnene! Da brukes th istedenfor td

Prøv selv I denne oppgaven skal et XML-dokument gjøres om til JSON som deretter brukes for å markere steder på et kart Hent XML-dokumentet mondial-europe-small.xml fra: http://edu.hioa.no/mbib4140/h17/ressurser/xml/ Hent XSLT-stilarket mondial.xsl fra: http://edu.hioa.no/mbib4140/h17/ressurser/xslt/ Forts.

mondial-europe-small.xml <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="..\xslt\mondial.xsl"?> <mondial> <country car_code="al" area="28750" capital="cty-albania-tirane" memberships="org-bsec "> <name>albania</name> <population measured="est." year="1950">1214489</population> <population measured="est." year="1960">1618829</population> <population measured="est." year="1970">2138966</population> <population measured="est." year="1980">2734776</population> <population measured="est." year="1990">3446882</population> <population year="1997">3249136</population> <population measured="est." year="2000">3304948</population> <population year="2001" measured="census">3069275</population> <population year="2011" measured="census">2800138</population> <population_growth>0.3</population_growth> <infant_mortality>13.19</infant_mortality> <gdp_total>12800</gdp_total> <gdp_agri>19.5</gdp_agri> <gdp_ind>12</gdp_ind> <gdp_serv>68.5</gdp_serv> <inflation>1.7</inflation> <unemployment>16.9</unemployment>... Første 1,000 linjer fra: https://www.dbis.informatik.unigoettingen.de/mondial/mondial-europe.xml Forts.

Output JSON { "type": "FeatureCollection", "features": [{ "type":"feature", "geometry": { "type":"point", "coordinates": [19.82, 41.33] }, "properties": { "name": "Tirana" } },{ "type":"feature", "geometry": { "type":"point", "coordinates": [19.5, 42.07] },... },]} Forts.

mondial.xsl <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="/"> <xsl:text>{ "type": "FeatureCollection", "features": [</xsl:text> <xsl:for-each select="fyll inn"> <xsl:text>{ "type":"feature", "geometry": { "type":"point", "coordinates": [</xsl:text> <xsl:value-of select="fyll inn" /> <xsl:text>, </xsl:text> <xsl:value-of select="fyll inn" /> <xsl:text>] </xsl:text> <xsl:text>}, "properties": { "name": "</xsl:text> <xsl:value-of select="fyll inn" /> <xsl:text>" } },</xsl:text> </xsl:for-each> <xsl:text>] }</xsl:text> </xsl:template> </xsl:stylesheet> 1. Oppdater mondial.xsl med riktig XPathadresser for å produsere JSON output fra forrige lysark 2. Kobler XSLT-stilarket til XML-dokumentet 3. Kjør transformasjonen Forts.

Åpner: http://geojson.io 1. Fjern JSON som vist 2. Kopiere output som er produsert av XSLT-transformasjonen. Ikke ta med XML-deklarasjonen i første linje 3. Etter du limer inn din JSON: fjern ekstra komma i siste linje

Neste gang NB torsdag 21. september Mer XSLT