xslt indlæg partner konference 2011

14
Working with XSLT in Dynamicweb Af Sten Hougaard

Upload: sten-hougaard

Post on 27-Apr-2015

522 views

Category:

Documents


1 download

DESCRIPTION

This is my presentation from the Dynamicweb CMS partner conference held on the 1. March 2011 in Kolding Denmark.

TRANSCRIPT

Page 1: XSLT indlæg partner konference 2011

Working with XSLT in DynamicwebAf Sten Hougaard

Page 2: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 2

Working with XSLT in Dynamicweb

Hvem er jeg?

• Sten Hougaard• Ansat hos Bleau A/S som frontend udviker• Har arbejdet med Dynamicweb siden 2005• Initiativtager til www.dwfeatures.com • Blog: http://www.netsi.dk/wordpress• Twitter: @netsi1964

Page 3: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 3

Working with XSLT in Dynamicweb

Hvad vil jeg tale om?

• Hvad er XSLT Templates?• Hvorfor XSLT frem for HTML baseret templates?• Eksempel på XSLT template• Værktøjer og best practice• Fremtiden - ønsker• Links – find link til dette slideshow på www.dwfeatures.com

Page 4: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 4

Working with XSLT in Dynamicweb

Hvad er XSLT Templates?

• Metode til at lave udtræk fra XML dokument - transformere• Dynamicweb CMS stiller XML dokument til rådighed• Tags struktureret i et DOM træ• XSLT transformerer dette træ til f.eks. HTML• Mange muligheder for at styre resultat via logik• Simpel DwTemplateTags i XSLT ser således ud:

<textarea><xsl:copy-of select=”/.” /></textarea>• Kan også få DW til at gemme til disk – tilføj til URL:

savetemplatexml=true

Page 5: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 5

Working with XSLT in Dynamicweb

Hvad er XSLT Templates? – Selve XSLT

• Vis element: <xsl:value-of select="News.CategoryName"/>• Vis attribut: <xsl:value-of select=”Loop/@name"/>• Test: <xsl:if test="Server.Request.debugxml='true'”>..</xsl:if>• Loop: <xsl:for-each select="item">..</xsl:for-each>• Variabel:<xsl:variable name=“NC" select="News.CategoryName" />• Anvend variabel:

<xsl:apply-templates select=“item[./News.CategoryName=$NC]” />• Template: <xsl:template match="item">...</xsl:template>• <input type="text" name="format“ value="{$dateFormat}" />

Find link til eksempel og resurser på www.dwfeatures.com

Page 6: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 6

Working with XSLT in Dynamicweb

Hvad er XSLT Templates? – XPATH

• XPATH bruges til navigation i XML og har en række funktioner• Navigation minder om CSS3 – jQuery ”forstår” XPATH navigation• ”Find ulige nyheder”:

//loop[@name='NewsList']/item[(position()+1) mod 2=0]• Eksempel – Microsoft extention til xpath

Find link til eksempel og resurser på www.dwfeatures.com

Page 7: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 7

Working with XSLT in Dynamicweb

Hvorfor XSLT frem for HTML baseret templates?

• Google søgning XSLT: 12 500 000 mil hits, dwtemplates: 5 170 hits.• Mindre ”snavs” til klienten, logik i XSLT sikrer kun relevant output• Man kan ikke noget i HTML templates som man ikke kan i XSLT• Arbejder man cross CMS-systemer er XSLT viden genbrugeligt• XPATH anvendes også i jQuery, syntax genbrug! CSS != XPATH• XSLT ender jo typisk også som HTML output, samme resultat • Ikke altid XSLT – primært ved komplekst output• Hvis det tager 15 minutter i HTML og 3 timer i XSLT, kunden er lige glad

han kigger på prisen.

Page 8: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 8

Working with XSLT in Dynamicweb

Eksempel på XSLT template

• Mål: Vise nyhedsliste som jQuery UI accordion• Personlig best practice: ”debugxml=true” => XML vises• Output kan give problemer i editor, invalid XML

Redning: VS2010 makro (se link på www.dwfeatures.com (snart))

Page 9: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 9

Working with XSLT in Dynamicweb

Værktøjer og best practice

• Visual Studio 2010• Offline transformering: Single step debugging, breakpoints• Snippets! Download. See video example of use.• Husk at begrænse antal loops i eCom XSLT templates!

<xsl:variable name="availableloops" select="'*'" />• ”TTXPathNavigator for VS2010” • XSLTIntellisence – ikke aktiv, aktiver via RegEdit!• Mulighed for både javascript og C# i XSLT

Følg med på www.dwfeatures.com!

Page 10: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 10

Working with XSLT in Dynamicweb

Fremtiden - ønsker

• DW åbner op for dw namespace med ”common” utils<dw:translate key=”’next’” default=”’Næste’” useGlobal=”false” />

• DW åbner op for custom namespaces, f.eks. ”bleau”<bleau:toMicroformat type=”’date’” select=”DwDate.GeneralDate” />

• Åbenhed og deling af viden mellem partnere. Styrker DW platformen.F.eks. Gennem www.dwfeatures.com

• XSLT 2.0 – når Microsoft er parat med det

Page 11: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 11

Working with XSLT in Dynamicweb

Links

• ”XSLT Reference” – Microsoft MSDN• ”XSLT Questions and Answers - FAQ”• ”XPath Syntax” – Microsoft MSDN• ”jQuery” javascript API• ”ajaxslt” jQuery addIn med XPATH og XSLT clientside• Screencasts @ dynamicweb.blip.tv• Snippets lige til at installere i VS• TTXPathNavigator for VS2010• XSLTIntellisence – ikke aktiv, aktiver via RegEdit!• Translation in Dynamicweb XSLT• Netsi.dk various XSLT examples

Page 12: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 12

Working with XSLT in Dynamicweb

Eventuelt og spørgsmål

Page 13: XSLT indlæg partner konference 2011

Partnerkonference 2011 / Sten Hougaard – [email protected] / side 13

Working with XSLT in Dynamicweb

Page 14: XSLT indlæg partner konference 2011

11-04-2023 / side 14