2008 4 maj 2008

Innefattar XSL inuti XSL

Om XML / XSL Förvandlas är din domian, då finns det tillfällen då vi vill ha en lappa av Dynamic kod som ska användas bibliotekspost (göras återanvändbar). Vad jag menar, skulle förmodligen bli mer tydliga med detta exempel scenario.

Tänk dig att du skapar en webbplats (och med hjälp av XML, XSL transfroms självklart) och de flesta av sidorna skulle ha en Kommentar modul. Tja! sedan antingen du kopiera eller klistra in den här koden i varje sidmall (som jag inte har något att säga, men gör underhåll och omarbetningar en mardröm) eller ännu bättre, skapar du en include-fil som kan dras in var du vill ha det i din sida ( s) ...
Så Hur skapar vi en XSL INCLUDE fil och inkludera den i en annan XSL fil? Här är hur ...

Bara för att göra saker klart ... här är snabb lista över filer som du skulle skapa ... här kommer vi bland annat info om frukt och grönsaker till en överordnad sida som heter mat.

1. food.xml - XML-datafil som omvandlingen ska tillämpas
2. food.xsl - Main XSL-fil, som kommer att förändra vårt food.xml
3. inc_fruits.xsl - XSL innehåller fil som kommer att göra frukt uppgifter
4. inc_vegtables.xsl - XSL innehåller fil som kommer att göra vetetables uppgifter

Jag tror inte jag har att förklara mycket, koderna för ovanstående faktorer kommer att vara självförklarande ...

FOOD.XML


<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>

<vegetables>
<item name="spinach" moreinfo="http://www.spinach.com">Spinach is full of iron</item>
<item name="asparagus" moreinfo="http://www.asparagus.com">Asparagus contains loads of vitamin D </item>
<item name="fenugreek" moreinfo="http://www.fenugreek.com">Fenugreek is rich in vitamin C</item>
</vegetables>
</food>


FOOD.XSL


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="inc_fruits.xsl" />
<xsl:include href="inc_vegetables.xsl" />
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
<body>
<h3><xsl:value-of select="/food/description" /></h3>
Modification Date : <xsl:value-of select="/food/date" />
<hr/>
<h5> About Fruits</h5>
<xsl:call-template name="about_fruits"/>

<hr/>
<h5> About Vegetables</h5>
<xsl:call-template name="about_vegetables"/>

<hr/>
</ Body>
</ Html>
</ Xsl: template>
</ Xsl: stylesheet>


INC_FRUITS.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_fruits">
<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


INC_VEGETABLES.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_vegetables">
<xsl:for-each select="/food/vegetables/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Ladda ner alla dessa filer här (252 nedladdningar)


NDK hem | Att uttrycka IT | uttrycka Palate | uttrycka Penmenship | uttrycka Awe | uttrycka mig