14
Working with XSLT in Dynamicweb Af Sten Hougaard

XSLT indlæg partner konference 2011

Embed Size (px)

DESCRIPTION

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

Citation preview

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