Lär dig hur du utför XSL-omvandlingar via server i Dreamweaver. Skapa XSLT-sidor och konvertera HTML till XSLT-sidor.
Användargränssnittet i Dreamweaver och senare har förenklats. Det kan därför hända att du inte hittar vissa av alternativen i den här artikeln i Dreamweaver och senare. Mer information finns i den här artikeln.
Arbetsflöde för att utföra XSL-transformeringar på serversidan
Du kan utföra XSL-transformeringar på serversidan på servern. Läs om XSL-transformeringar på serversidan och klientsidan och om att använda XML och XSL med webbsidor innan du bygger sidor som visar XML-data.
Din server måste konfigureras på rätt sätt för att utföra serveromvandlingar. Kontakta serveradministratören för mer information.
Det allmänna arbetsflödet för att utföra XSL-transformeringar på serversidan är följande (varje steg beskrivs i andra avsnitt):
1. Konfigurera en Dreamweaver-webbplats.
2.Välj en serverteknik och konfigurera en applikationsserver.
3.Testa applikationsservern.
Skapa till exempel en sida som kräver bearbetning och kontrollera att programservern bearbetar sidan.
4.Skapa ett XSLT-fragment eller en sida, eller konvertera en HTML-sida till en XSLT-sida.
Skapa ett XSLT-fragment eller en hel XSLT-sida på din Dreamweaver-webbplats.
Konvertera en befintlig HTML-sida till en hel XSLT-sida.
5.Bifoga en XML-datakälla till sidan.
6.Visa XML-data genom att binda data till XSLT-fragmentet eller till hela XSLT-sidan.
7.Om det är lämpligt lägger du till ett XSLT-objekt för upprepande region till tabellen eller tabellraden som innehåller XML-dataplatshållarna.
8.Infoga referenser.
För att infoga en referens till XSLT-fragmentet på din dynamiska sida använder du serverbeteendet XSL Transformation.
För att infoga en referens till hela XSLT-sidan på den dynamiska sidan tar du bort all HTML-kod från en dynamisk sida och använder sedan serverbeteendet XSL Transformation.
9. Lägg upp sidan och fragmentet.
Lägga upp både den dynamiska sidan och XSLT-fragmentet (eller hela XSLT-sidan) på din applikationsserver. Om du använder en lokal XML-fil måste du lägga upp även den.
10.Visa den dynamiska sidan i en webbläsare.
När du gör det transformerar programservern XML-data, infogar den i den dynamiska sidan och visar den i webbläsaren.
Skapa en XSLT-sida
Du kan skapa XSLT-sidor som gör att du kan visa XML-data på webbsidor. Du kan skapa antingen en hel XSLT-sida – en XSLT-sida som innehåller en <body>-tagg och en <head>-tagg – eller så kan du skapa ett XSLT-fragment. När du skapar ett XSLT-fragment skapar du en oberoende fil som inte innehåller någon brödtext- eller head-tagg – en enkel kodbit som sedan infogas i en dynamisk sida.
Om du börjar med en befintlig XSLT-sida måste du koppla en XML-datakälla till den.
Välj XSLT (Entire page) för att skapa en hel XSLT-sida.
Välj XSLT (Fragment) för att skapa ett XSLT-avsnitt.
- Välj Koppla en lokal fil, klicka på knappen Bläddra, bläddra till en lokal XML-fil på datorn och klicka på OK.
- Välj Koppla en fjärrfil, ange URL-adressen till en XML-fil på internet (t.ex. en som kommer från ett RSS-inlägg) och klicka på OK.
Om du klickar på knappen Avbryt skapas en ny XSLT-sida utan någon kopplad XML-datakälla.
I panelen Bindningar visas schemat för XML-datakällan
Följande tabell innehåller en förklaring av de olika elementen som kan visas i schemat:
Element |
Representerar |
Detaljer |
|---|---|---|
<> |
Obligatoriskt icke-upprepat XML-element |
Ett element som visas exakt en gång i sin överordnade nod |
<>+ |
Upprepat XML-element |
Ett element som visas en eller flera gånger i sin överordnade nod |
<>+ |
Valfritt XML-element |
Ett element som visas noll eller flera gånger i sin överordnade nod |
Elementnod i fet stil |
Element för aktuellt sammanhang |
Ofta det upprepade elementet när markören finns inuti en upprepad region |
@ |
XML-attribut |
|
Konvertera HTML-sidor till XSLT-sidor
Du kan också konvertera befintliga HTML-sidor till XSLT-sidor.Om du till exempel har en fördesignad statisk sida som du vill lägga till XML-data i, kan du konvertera sidan till en XSLT-sida istället för att skapa en XSLT-sida och designa om sidan från grunden.
En kopia av sidan öppnas i dokumentfönstret. Den nya sidan är en XSL-stilmall, sparad med tillägget .xsl.
Koppla XML-datakällor
Om du börjar med en befintlig XSLT-sida, eller om du inte bifogar en XML-datakälla när du skapar en ny XSLT-sida med Dreamweaver, måste du bifoga en XML-datakälla med hjälp av Bindings-panelen.
Du kan även klicka på länken Källa i det övre högra hörnet i panelen Bindningar för att lägga till en XML-datakälla.
Välj Attach A Local File, klicka på knappen Browse, bläddra till en lokal XML-fil på din dator och klicka på OK.
Välj Attach A Remote File och ange URL:en för en XML-fil på Internet (till exempel en som kommer från ett RSS-flöde).
Panelen Bindings fylls med schemat för din XML-datakälla.
Visa XML-data på XSLT-sidor
När du har skapat en XSLT-sida och bifogat en XML-datakälla kan du binda data till sidan.För att göra detta lägger du till en XML-dataplatshållare på din sida och använder sedan XPath Expression Builder eller Property inspector för att formatera vald data som ska visas på sidan.
I de flesta fall använder du XSLT-objektet Repeating Region för att visa upprepade XML-element på en sida.I det här fallet kanske du vill skapa en tabell med en rad och en eller flera kolumner, eller en tabell med två rader om du vill inkludera en tabellrubrik.
En XML-dataplatshållare visas på sidan.Platshållaren är markerad och i klammerparenteser.Den använder XPath-syntaxen (XML Path language) för att beskriva den hierarkiska strukturen i XML-schemat.Om du till exempel drar det underordnade elementet title till sidan, och det elementet har de överordnade elementen rss, channel och item, då blir syntaxen för platshållaren för det dynamiska innehållet {rss/channel/item/title}.
Dubbelklicka på XML-dataplatshållaren på sidan för att öppna XPath Expression Builder.XPath Expression Builder låter dig formatera vald data eller välja andra objekt från XML-schemat.
När du förhandsgranskar arbetet med Förhandsvisa i webbläsare utför Dreamweaver en intern XSL-omvandling utan en programserver.
Visa upprepade XML-element
XSLT-objektet Upprepande region låter dig visa upprepande element från en XML-datakälla på en webbsida. Om du till exempel visar artikelrubriker och beskrivningar från ett nyhetsflöde som innehåller mellan 10 och 20 artiklar, skulle varje rubrik och beskrivning i XML-filen förmodligen vara ett underordnat element till ett upprepande element.
Alla regioner i designvyn som innehåller en XML-dataplatshållare kan ändras till en upprepad region.De vanligaste regionerna är dock tabeller, tabellrader eller en serie tabellrader.
Markeringen kan vara vad som helst, inklusive en tabell, en tabellrad eller till och med ett textstycke.
Om du vill markera en region exakt på sidan kan du använda taggväljaren längst ned i det vänstra hörnet i dokumentfönstret. Om en region t.ex. är en tabell klickar du inuti tabellen på sidan och klickar sedan på taggen i taggväljaren.
Välj Infoga > XSLT-objekt > Upprepande region.
Klicka på knappen Upprepande region i XSLT-kategorin i panelen Infoga.
I dokumentfönstret visas en tunn, flikad, grå kontur runt den upprepande regionen. När du förhandsgranskar ditt arbete i en webbläsare (Arkiv > Förhandsgranskning i webbläsare) försvinner den grå konturen och markeringen expanderar för att visa de angivna upprepande elementen i XML-filen.
När du lägger till XSLT-objektet Upprepande region till sidan kortas XML-dataplatshållaren i dokumentfönstret av.Detta beror på att Dreamweaver trunkerar XPath för XML-dataplatshållaren så att den är relativ till sökvägen för det upprepande elementet.
Ange egenskaper för upprepade regioner (XSL)
I egenskapsinspektören kan du välja en annan XML-nod för att skapa den upprepande regionen.
Redigera ett XSLT-objekt för en upprepad region
När du har lagt till ett XSLT-objekt för upprepande region i en region kan du redigera det med egenskapsinspektören.
Infoga XSLT-fragment i dynamiska sidor
När du har skapat ett XSLT-fragment kan du infoga det på en dynamisk webbsida med serverbeteendet XSL-transformering. När du lägger till serverbeteendet till din sida och visar sidan i en webbläsare utför en applikationsserver en transformering som visar XML-data från det valda XSLT-fragmentet. Dreamweaver stöder XSL-transformeringar för ColdFusion-, ASP- eller PHP-sidor.
Om du vill infoga innehållet för en hel XSLT-sida på en dynamisk sida är proceduren exakt densamma. Innan du använder serverfunktionen XSL-omvandling för att infoga hela XSLT-sidan tar du bort all HTML-kod från den dynamiska sidan.
När du infogar XSLT-avsnittet bör du alltid klicka på knappen Visa kod och design efter att du har placerat markören på sidan så att du kan vara säker på att markören är på rätt plats. Om den inte är det måste du klicka någon annanstans i kodvyn för att placera insättningspunkten där du vill ha den.
Dreamweaver fyller i nästa textfält med filvägen eller URL:en för XML-filen som är kopplad till det angivna fragmentet. Om du vill ändra den klickar du på knappen Bläddra och bläddrar till en annan fil.
En mapp includes/MM_XSLTransform/ skapas också i platsens rotmapp som innehåller en runtime-biblioteksfil. Applikationsservern använder funktionerna som definieras i den här filen för att utföra transformeringen.
Ta bort XSLT-fragment från dynamiska sidor
Du kan ta bort ett XSLT-fragment från en sida genom att ta bort serverbeteendet för XSL-transformering som användes för att infoga fragmentet.När du tar bort serverbeteendet tas endast XSLT-fragmentet bort – det tar inte bort de associerade XML-, XSLT- eller körbiblioteksfilerna.
Du bör alltid ta bort fjärranslutna serverfunktioner på det här sättet. Om du tar bort den skapade koden manuellt tar du endast bort serverfunktionen till viss del, trots att serverfunktionen kan försvinna från panelen Serverfunktioner.
Redigera serverbeteenden för XSL-transformering
När du har lagt till ett XSLT-fragment på en dynamisk webbsida kan du redigera XSL-transformeringens serverbeteende när som helst.
Skapa en dynamisk länk
Du kan skapa en dynamisk länk på din XSLT-sida som länkar till en specifik URL när användaren klickar på ett angivet ord eller grupp av ord från dina XML-data. För fullständiga instruktioner, se Dreamweaver errata på www.adobe.com/go/dw_documentation.
Använd format på XSLT-avsnitt
När du skapar en hel XSLT-sida (det vill säga en XSLT-sida som innehåller <body>- och <head>-taggar) kan du visa XML-data på sidan och sedan formatera data som vilket annat innehåll som helst med hjälp av egenskapsinspektören eller CSS-panelen.När du skapar ett XSLT-fragment för infogning på en dynamisk sida (till exempel ett fragment för infogning på en ASP-, PHP- eller Cold Fusion-sida) blir renderingen av format i fragmentet och på den dynamiska sidan mer komplicerad. Även om du arbetar med ett XSLT-fragment separat från den dynamiska sidan är det viktigt att komma ihåg att fragmentet är avsett för användning inom den dynamiska sidan och att utdata från XSLT-fragmentet i slutändan finns någonstans inom <body>-taggarna på den dynamiska sidan. Givet detta arbetsflöde är det viktigt att se till att du\inte inkluderar <head>-element (som stildefinitioner\neller länkar till externa stilmallar) i XSLT-fragment.Om du gör det kommer programservern att placera dessa element i <body> på den dynamiska sidan, vilket genererar ogiltig kod.
Du kanske till exempel vill skapa ett XSLT-fragment för infogning\ni en dynamisk sida och formatera fragmentet med samma externa\nstilmall som den dynamiska sidan.Om du bifogar samma stilmall till fragmentet innehåller den resulterande HTML-sidan en dubblett av länken till stilmallen (en i <head>-avsnittet av den dynamiska sidan och en annan i <body>-avsnittet av sidan, där innehållet från XSLT-fragmentet visas).Istället för den här metoden bör du använda formatmallar för designläge för att referera till den externa formatmallen.
När du formaterar innehållet i XSLT-fragment använder du följande\narbetsflöde:
Koppla först en extern formatmall till den dynamiska sidan. (Detta är den bästa metoden för att använda format på innehåll på en webbsida).
Koppla sedan samma externa formatmall till XSLT-avsnittet som en formatmall för designläge. Som namnet antyder fungerar endast formatmallar för designläge i designvyn i Dreamweaver.
När du har utfört dessa två steg kan du skapa nya format i XSLT-avsnittet med samma formatmall som du har kopplat till den dynamiska sidan. HTML-utdata blir renare (eftersom referensen till formatmallen endast är giltig när du arbetar i Dreamweaver) och avsnittet kommer fortfarande att visa rätt format i designvyn. Dessutom kommer alla dina format att användas på både avsnittet och den dynamiska sidan när du visar den dynamiska sidan i designvyn eller förhandsgranskar den dynamiska sidan i en webbläsare.
Om du förhandsgranskar XSLT-avsnittet i en webbläsare visar inte webbläsaren formaten. Istället bör du förhandsgranska den dynamiska sidan i webbläsaren för att se XSLT-avsnittet i sammanhanget för den dynamiska sidan.
Använda parametrar med XSL-omvandlingar
Du kan definiera parametrar för din\nXSL-transformering när du lägger till serverbeteendet XSL Transformation\ntill en webbsida.En parameter styr hur XML-data bearbetas och\nvisas.Du kan till exempel använda en parameter för att identifiera och\nlista en specifik artikel från ett nyhetsflöde.När sidan laddas i\nen webbläsare visas endast den artikel som du angav med parametern.
Lägg till en XSLT-parameter till en XSL-\ntransformering
Om du vill använda ett statiskt värde anger\ndu det i rutan Value.
Om du vill använda ett dynamiskt värde klickar du på dynamikikonen intill rutan Värde, fyller i dialogrutan Data och klickar på OK.För mer information klickar du på Help-knappen i dialogrutan Dynamic Data.
Redigera en XSLT-parameter
Ta bort en XSLT-parameter
Skapa och redigera villkorliga XSLT-regioner
Du\nkan skapa enkla villkorliga regioner eller flera villkorliga regioner\npå en XSLT-sida.Du kan antingen välja ett element i designvyn och tillämpa en villkorlig region på det valda elementet, eller så kan du infoga en villkorlig region var som helst där infogningspunkten finns i dokumentet.
Om\ndu till exempel ville visa ordet \"Ej tillgänglig\" intill\npriset på en artikel när artikeln inte är tillgänglig, skriver du\ntexten \"Ej tillgänglig\" på sidan, väljer den och tillämpar sedan en villkorlig\nregion på den valda texten.Dreamweaver omger valet med <xsl:if>-taggar och visar endast ordet "Otillgänglig" på sidan när data matchar villkoren i det villkorliga uttrycket.
Lägga till en villkorsstyrd XSLT-region
Du kan skriva ett enkelt villkorligt uttryck som du infogar på din XSLT-sida. Om innehåll är valt när du öppnar dialogrutan Villkorlig region omsluts innehållet av ett <xsl:if>-block.Om du inte har valt Innehåll läggs <xsl:if>-blocket till vid infogningspunkten på sidan. Det är en bra idé att använda dialogrutan för att komma igång och sedan anpassa uttrycket i kodvyn.
<xsl:if>-elementet liknar if-satsen i andra språk. Elementet ger dig ett sätt att testa ett villkor och vidta en åtgärd baserat på resultatet. <xsl:if>-elementet låter dig testa ett uttryck för ett enda sant eller falskt värde.
I följande exempel vill du testa för att se om kontextnoderns @available-attributvärde är sant.
Följande kod infogas på XSLT-sidan:
<xsl:if test="@available='true'">
Innehållet hamnar här
</xsl:if>
Du måste använda citattecken runt strängvärden som är sanna. Dreamweaver kodar citattecknen åt dig (') så att de anges som giltig XHTML.
Förutom att testa noder för värden kan du använda vilken som helst av de XSLT-funktioner som stöds i valfri villkorlig sats. Villkoret testas för den aktuella noden i XML-filen. I följande exempel vill du testa för den sista noden i resultatuppsättningen:
För mer information och exempel om att skriva villkorliga uttryck, se avsnittet <xsl:if> i referenspanelen (Hjälp > Referens).
Tillämpa flera villkorliga XSLT-regioner
Du kan skriva ett enkelt villkorligt uttryck som du infogar på din XSLT-sida. Om innehåll är markerat när du öppnar dialogrutan för villkorlig region omsluts innehållet av ett <xsl:choose>-block.Om du inte väljer Innehåll läggs <xsl:choose>-blocket till vid infogningspunkten på sidan. Det är en bra idé att använda dialogrutan för att komma igång och sedan anpassa uttrycket i kodvyn.
<xsl:choose>-elementet liknar case-satsen i andra språk. Elementet ger dig ett sätt att testa ett villkor och vidta en åtgärd baserat på resultatet. <xsl:choose>-elementet låter dig testa flera villkor.
I följande exempel vill du testa om kontextnodens price subelement är mindre än 5.
I exemplet infogas följande kod på din XSLT-sida:
<xsl:choose>
<xsl:when test="price<5">
Innehållet hamnar här
</xsl:when>
<xsl:otherwise>
Innehållet hamnar här
</xsl:otherwise>
</xsl:choose>
När du har angett villkoret och klickat på OK infogas ytterligare en <xsl:when> tagg i <xsl:choose> blocket.
För mera information och exempel om att skriva villkorsuttryck, se avsnitten <xsl:choose> i panelen Referens (Hjälp > Referens).
Ange (If)-egenskaper för villkorsstyrd region
Syftet med egenskapsinspektören Ange villkorsregion är att ändra villkoret som används i en villkorsregion på din XSL-sida. Villkorsregionen testar villkoret och utför en åtgärd baserat på resultatet.
Ange villkorsstyrda (When)-egenskaper
Syftet med egenskapsinspektören Ange villkorsregion är att ändra villkoret som används i en flervillkorsregion på din XSL-sida. Flervillkorsregionen testar villkoret och utför en åtgärd baserat på resultatet.
Infoga XSL-kommentarer
Du kan lägga till XSL-kommentarstaggar till ett dokument, eller du kan kapsla in en markering i XSL-kommentarstaggar.
Lägga till XSL-kommentartaggar i ett dokument
I designvyn väljer du Infoga > XSLT-objekt > XSL-kommentar, skriver innehållet i kommentaren (eller lämnar rutan tom) och klickar på OK.
I kodvyn väljer du Infoga > XSLT-objekt > XSL-kommentar.
Du kan också klicka på ikonen XSL-kommentar i XSLT-kategorin på panelen Infoga.
Kapsla in ett urval i XSL-kommentarstaggar
Använd XPath Expression Builder för att lägga till uttryck för XML-data
XPath (XML Path Language) är en icke-XML-syntax för att adressera delar av ett XML-dokument.Den används främst som ett frågespråk för XML-data, precis som SQL-språket används för att göra databassökningar.För mer information om XPath, se XPath språkspecifikationen på W3C:s webbsida på www.w3.org/TR/xpath.
XPath Expression Builder är en Dreamweaver-funktion som låter dig bygga enkla XPath-uttryck för att identifiera specifika datanoder och för upprepande områden.Fördelen med att använda denna metod istället för att dra värden från XML-schematrädet är att du kan formatera värdet som visas.Det aktuella sammanhanget identifieras baserat på positionen för insättningspunkten i XSL-filen när dialogrutan XPath Expression Builder öppnas.Det aktuella sammanhanget visas i fet stil i XML-schematrädet. När du gör val i den här dialogrutan genereras korrekta XPath-uttryck, i förhållande till ditt aktuella sammanhang.Detta förenklar processen att skriva korrekta XPath-uttryck för nybörjare och avancerade användare.
Den här funktionen är utformad för att hjälpa dig att skapa XPath-uttryck för att identifiera en särskild nod eller för upprepade regioner. Du kan inte redigera uttrycken manuellt. Om du behöver skapa komplicerade uttryck använder du XPaths uttrycksbyggare för att komma igång och anpassar sedan uttrycken i kodvyn eller med egenskapskontrollen.
Skapa ett XPath-uttryck för att identifiera en specifik nod
Det korrekta XPath-uttrycket skrivs i rutan Expression för att identifiera noden.
Om du väljer en annan nod i XML-schematrädet ändras uttrycket för att återspegla ditt val.
I följande exempel vill du visa subelementet price av noden item:
Detta val skulle infoga följande kod på din XSLT-sida:
<xsl:value-of select="price"/>
Att formatera ett val är användbart när värdet på din nod returnerar ett nummer.Dreamweaver tillhandahåller en fördefinierad lista med formateringsfunktioner.För en komplett lista över tillgängliga formateringsfunktioner och exempel, se referenspanelen.
I följande exempel vill du formatera subelementet price som en valuta med två decimaler:
Dessa alternativ skulle infoga följande kod på din XSLT-sida:<xsl:value-of select="format-number(provider/store/items/item/price,'$#.00')"/>
För mer information och exempel om att välja noder för att returnera ett värde, se avsnittet <xsl:value-of/> i referenspanelen.
Markera en nod som ska upprepas
Du kan välja en nod att upprepa över och, valfritt, filtrera resultaten. I dialogrutan XPath Expression Builder kommer ditt valda innehåll att omsluta av ett <xsl:for-each>-block. Om du inte har valt något innehåll kommer <xsl:for-each>-blocket att infogas vid markörens position.
Det korrekta XPath-uttrycket skrivs i uttrycksrutan för att identifiera noden.
Upprepande objekt identifieras med en plussymbol (+) i XML-schematrädet.
I följande exempel vill du upprepa varje item-nod inuti XML-filen.
När du klickar på OK infogas följande kod i din XSLT-sida:
<xsl:for-each select="provider/store/items/item">
Innehållet hamnar här
</xsl:for-each>
I vissa fall kan du vilja arbeta med en deluppsättning av de upprepande noderna – till exempel kanske du bara vill ha objekt där ett attribut har ett specifikt värde.I detta fall måste du skapa ett filter.
Filtrera data som ska upprepas
Använd ett filter för att identifiera upprepande noder som har specifika attributvärden.
Filtrera enligt
Anger den upprepande noden som innehåller den data du vill filtrera efter. Popup-menyn tillhandahåller en lista över överordnade noder relativt till noden du valde i XML-schematrädet.
Plats
Anger attributet eller subelementet för noden Filtrera efter som används för att begränsa resultaten. Du kan välja ett attribut eller subelement från popup-menyn, eller så kan du ange ditt eget XPath-uttryck i detta fält för att identifiera underordnade element som finns djupare inuti schematrädet.
Operator
Anger jämförelseoperatorn som ska användas i filter- uttrycket.
Värde
Anger värdet som ska hittas i noden Filtrera enligt. Ange värdet. Om dynamiska parametrar är definierade för din XSLT- sida kan du välja en från popup-menyn.
När du anger värden eller gör val i popup-menyerna ändras XPath-uttrycket i uttrycksrutan.
I följande exempel vill du begränsa resultatet till de item-noder där värdet för attributet @available är sant.
När du klickar på OK infogas följande kod i din XSLT-sida:<xsl:for-each select="provider/store/items/item[@available = 'true']"> Innehåll placeras här </xsl:for-each>
Du måste omge strängvärden som är sanna med citattecken. Dreamweaver kodar om citattecknen åt dig (') så att de anges som giltig XHTML.
Du kan skapa mer komplexa filter som gör att du kan ange överordnade noder som en del av dina filterkriterier.I följande exempel vill du begränsa resultatmängden till de item-noder där store:ns @id-attribut är lika med 1 och item:ns price-nod är större än 5.
När du klickar på OK infogas följande kod på din XSLT-sida:<xsl:for-each select="provider/store[@id = 1]/items/item[price > 5]"> Content goes here </xsl:for-each>
Mer information och exempel på upprepande regioner finns i avsnittet <xsl:for-each> i referenspanelen.
Skapa snygga webbplatser i Dreamweaver
Designa, koda och hantera dynamiska webbplatser med ett kraftfullt allt-i-ett-verktyg.