Upload
sten-hougaard
View
523
Download
1
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
Working with XSLT in DynamicwebAf Sten Hougaard
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
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
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
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
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
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.
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))
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!
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
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
Partnerkonference 2011 / Sten Hougaard – [email protected] / side 12
Working with XSLT in Dynamicweb
Eventuelt og spørgsmål
Partnerkonference 2011 / Sten Hougaard – [email protected] / side 13
Working with XSLT in Dynamicweb
11-04-2023 / side 14