Laboration 1 XML, XPath, XSLT och JSON

Relevanta dokument
Laboration 2 RESTful webb-api

Webbteknik II - 1DV449 Laboration 3

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

Det ska endast finnas två bilder av samma typ på spelplanen.

Laborationshandledning Laboration 02

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

Optimering av prestanda

Copy Cat Laboration 4

Fönsterhanterare i JavaScript PWD, Personal Web Desktop

Webbprogrammering TDDD52

Labora&on 7 Syfte med laborationen:

Axiell Arena. Optimering av prestanda

E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

XSLT. Extensible Stylesheet Language Transformations

E12 "Evil is going on"

E13 "Behind the Wild"

I den här labben ska vi använda oss av en trevlig nyhet i HTML5: Local Storage, för att implementera en sorts lokal gästbok.

Elektronisk publicering TNMK30

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

Laboration 4. Laboration 4, Formulärvalidering. Inledning. Observera. Mål. Genomförande

Projektuppgift- Mashup- Applikation

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

Vad är XSLT XSLT extensible Stylesheet Language Transformations

Webbutveckling Laboration 1: HTML5 och CSS3.

Dokumentdatum Sidor 1(6)

Webbteknik för ingenjörer

Avancerade Webbteknologier

Kompletterande exempel till XSLT

Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...

Presentera dig själv Laboration 1

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

BaraTrav Prenumeration och Installation Version 1.3.4

Kursplanering Utveckling av webbapplikationer

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Dokumentdatum Sidor 1(7)

Xhtml och CSS.Tillämpad fysik och elektronik Per Kvarnbrink (redigering Ulf Holmgren 2011)

API:er/Mashup. Föreläsning 4 API:er och Mashups. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Användarmanual - OVK. Användarmanual OVK Version 1.5 Daterad:

Kursledare och övriga föreläsare och övningsassistenter. Antal undervisningstimmar uppdelat på föreläsningar, övningar och andra undervisningsformer

En snabb titt på XML LEKTION 6

Synkronisera projekt med SharePoint

2I1073 Föreläsning 1. HTML och XHTML XHTML

Konstruktion av datorspråk

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Zimplit CMS Manual. Introduktion. Generell Information

Karusell med länkade omslagsbilder

Databasbaserad publicering ME105A Laboration 9 1 (5)

Webbservrar, severskript & webbproduktion

Tillämpad programmering CASE 1: HTML. Ditt namn

Användargränssittet (Front-end) i mobilversionen bygger i stor utsträckning på jquery Mobile-ramverket.

Office 365 Windows 10

Har du läst kursen på Campus eller distans Campus 8 53% Distans 7 47%

Vis it. jquery jquery används lite överallt i appen på olika sätt. Det främsta användningsområdet är vid selektering och manipulering av HTML element.

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Webbserver och HTML-sidor i E1000 KI

Laboration 3 i kursen Produktion för tryckta medier och webb: Webbplatsproduktion med ett publiceringssystem

Räkna med ASP.NET MVC 3

TDP013 Node.js, JSCoverage, Mocha. Marcus Bendtsen Institutionen för Datavetenskap

E09 - Totally Tool Time

Procedurell renderingsmotor i Javascript och HTML5

Referenshantering med Zotero 1

Stationsregistret - användarhandledning

Instruktion för laboration 1

Struktur och innehåll Laboration 2

JavaScript in SharePoint and not just for Apps. Wictor Wilén

extensible Markup Language

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

On-line produktion TDDC61

Värmedistribution i plåt

Tentamen TEN1 HI

<script src= "

E07 "Greased Lightning"

INFORMATION FRÅN VITEC. Objektlista XML

Laboration 1. Webbprodution Struktur & innehåll HT2015

E12 "Evil is going on"

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Sammanfattning av hantering av redovisning av uppgift U1

Laboration 2: Xhtml och CSS.

Användarhandledning Version 1.2

Strukturering med XML och DTD

Föreläsning 4. CSS Stilmallar för webben

Nyheter i. Solen ORBIT 6.7

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

JavaScript del 5 Funktioner

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.0

Implementation av automatisk datainsamling, lagring och presentation för salubjudna fastigheter och bostadsrättslägenheter på Internet

Projekt Foreläsning VI

En stiligare portal Laboration 3

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

XML och C#.NET Att hantera XML-dokument

Webbutveckling med AngularJS

Abstrakta datatyper Laboration 2 GruDat, DD1344

Introduktion till Winbas. excel till Winbas

Manual för Typo3 version 4.2

Transkript:

Webbteknik II, 1DV449 Laboration 1 XML, XPath, XSLT och JSON Author: John Häggerud & Johan Leitet Semester: HT 2011 Course code: 1DV449

Inledning I denna första laboration är det tanken att Du ska bekanta dig med data-formaten XML och JSON. Du kommer också få lösa uppgifter som innebär att du sätter dig in i XML-tekniker så som XPath och XSLT. Laborationen består av fyra stycken obligatoriska uppgifter som alla ska lösas enligt den beskrivning som ges. Det finns också en utökning av den sista uppgiften som kan ses som en extrauppgift. Målet med laborationen är att du ska få grundläggande kännedom om XML, XSLT, XPath och JSON. Genomförande Du ska vara beredd att själv kunna söka upp viss information för att lösa laborationen. Laborationen löses individuellt men diskutera gärna eventuella problem och lösningar med dina kurskamrater. Du ska kunna svara på frågor från laborationshandledaren rörande dina lösningar. 2 (9)

Uppgift 1 XSLT Till denna uppgift finns en XML-fil som heter lab1_uppg1.xml att ladda ner (ligger i zipfilen som hör till laborationen). Det är det tänkt att du ska presentera denna via en XSLT-mall så det efterliknar skärmdumpen nedan: Du ska ha en kolumn där du presenterar innehåller i tre olika grupper beroende på vad de har för pris. De tre olika grupper framgår av bilden ovan. Den högra kolumnen ska presentera alla produkter i XML-dokumentet i bokstavsordning. Presentationen ska även likna exemplet ovan när det gäller färgbyte på varannan rad. Uppgiften publiceras på en åtkomlig webbserver och transformeras via något serverscriptspråk. För er som inte har en egen webbserver tillhandahåller vi detta via en VPN-koppling. Mer information om detta finns på kurshemsidan. Du får inte använda for-each-loopar i denna uppgift! 3 (9)

Tips! Det finns modulo i XSLT! Källkoden ska visas vid redovisningen. Uppgift 2 Analys av XHTML- sida med hjälp av XPath I denna uppgift ska du läsa in en XML-fil (finns i zipfilen som page.html) som är i form av en XHTML-sida och göra en enklare analys av med hjälp av en XSLT-mall, presentera för användaren (se skärmdumpen nedan). I denna uppgift kommer du förmodligen få problem med det dokument (XHTML-dokumentet) som du ska analysera när du kör det genom en XSLTmall. Anledningen till detta är att det blir en namespace-krock när man dels läser in ett XHTML-dokument och försöker transformera om det till ett nytt dokument med samma namespace, (http://www.w3.org/1999/xhtml). XSLTprocessorn hittar då inte de XPath-uttryck du gett. Så klart finns det en lösning på detta och för att lösa detta får du läsa följande artikel: http://www.xmlplease.com/xhtmlxhtml (Kontrollerad: 2011-11-03). 4 (9)

Där går artikelförfattaren igenom hur man kan hantera detta för att komma åt noderna i det dokument man läser in. Observera att han dock använder fler namespace än vad vi behöver (e.g. http://www.w3.org/2001/xmlschema). Uppgiften publiceras på en åtkomlig webbserver och transformeras via serverscriptspråk. Tips! Läs på om olika XPath-funktioner för att få ihop dina XPath-frågor. Vår webbserver har bara stöd för XPath 1.0. Du kan skapa element och attribut med xsl:element och xsl:attribute vilket kan underlätta i fall när du dynamiskt ska skapa element med attribut. Källkod ska visas vid redovisningen. Uppgift 3 Atom till JSON till JavaScript I denna uppgift får du en fil med data i ATOM-format(feed.xml). Din uppgift blir att via lämpligt serverscriptspråk läsa in informationen, och generera ut JSON-data så att den medföljande JavaScript-applikationen (använder jquery mobile) fungerar och ser ut som följande skärmdumpar. (Det kan naturligtvis förekomma andra, nyare nyheter): 5 (9)

När man klickar på en rad ska detta ta er till en informationssida : Bilden nedan visar en skärmdump på hur JSON-objektet du returnerar från ditt serverscript ska se ut. Javascriptet du får länkar in javascript-biblioteken jquery och jquery-mobile som externa javascriptbibliotek samt en medföljande fil (ui.js) som bör ligga i samma katalog som index.html och ditt eget serverscript. Din uppgift är alltså att skriva ett serverscript som förser index.html + ui.js med rätt data, det vill säga rätt formaterad json. Det redan skrivna javascriptet i filen ui.js kommer att göra ett asynkront anrop (AJAX) mot ditt serverscript. Du måste dock ange rätt sökväg till ditt serverscript i den interna javascript-koden i filen index.html. 6 (9)

Tips! För att komma åt elementen som finns i ATOM-namnrymden bör man använda funktionen registerxpathnamespace (http://php.net/manual/en/simplexmlelement.registerxpathnamespace.php) Uppgift 4 Använda en XSLT- mall för att generera ut olika XML- applikationer I denna uppgift är det tänkt att du genom att använda de tekniker som finns inom XSLT för att generera två olika resultat beroende på den parameter man skickar in till sin XSLT-mall. I denna uppgift ska du genererar antingen en XHTML-sida eller en svg-fil eller båda två. Till din hjälp får du en xml-fil (os_resultat.xml) som innehåller den data som din XSLT-mall ska använda sig av. Din uppgift blir att läsa in XML-filen tillsammans med en XSLT-mall där din transformering ska ske. Detta görs via ett serverscript. Anropar man scriptet med querystringen render=xhtml, ska en XHTMLsida liknande skärmdumpen nedan presenteras (data inläst från XML-filen). Anropar man scriptet med querystringen render=svg, ska en korrekt utformad svg-sida liknande skärmdumpen nedan presenteras (skärmdumpen är tagen när resultatet ses med webbläsaren Google Chrome, som har stöd för svg). 7 (9)

Anropar man scriptet med querystringen render=xhtml_svg, ska en kombinerad sida ses där man först ser HTML-tabellen och där under ser svggrafiken. Tips: http://www.w3schools.com/svg/default.asp I denna uppgift kan det vara bra att använda sig av xsl:variable (http://www.w3schools.com/xsl/el_variable.asp) och XPath-funktionen position() för att kunna rita upp rektanglarna/diagrammen på ett dynamiskt sätt under varandra. Extrauppgift En utökad SVG- sida 8 (9)

För er som siktar på högre betyg och vill fördjupa er i dynamisk XSLT + svg finns en mer avancerad svg-bild att generera. Då ska istället bilden se ut som bilden nedan: De med flest guldmedaljer till vänster. Skulle man ha lika många guld blir andra sorteringsordningen silvermedaljer och sist brons. 9 (9)