Working with XSLT in Dynamicweb Af Sten Hougaard
Mar 28, 2016
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