Als XML / XSL-transformaties is uw domian, dan zijn er momenten waarop we een stuk van dynamische code te gebruiken bibliotheekitem (gemaakt worden herbruikbare) willen. Wat ik bedoel, kan waarschijnlijk worden gemaakt met dit voorbeeld duidelijk scenario.
Stel je voor dat het maken van een website (en het gebruik van XML, XSL transfroms natuurlijk) en de meeste van de pagina's zou een Opmerkingen Module hebben. Nou! vervolgens te kopiëren of deze code plakken in elke pagina template (die ik dont have zeggen, maar maken het onderhoud en rework een nachtmerrie), of nog beter, maak je een INCLUDE-bestand dat kan in waar je zelf wil worden getrokken in uw pagina ( s) ...
Dus Hoe creëren we een XSL INCLUDE-bestand en dit opnemen in een andere XSL-bestand? Hier is hoe ...
Gewoon om dingen duidelijk maken ... hier is een snelle lijst met bestanden die je zou maken ... hier, zullen we ook informatie over fruit en groenten in een bovenliggende pagina genaamd voedsel.
1. food.xml - XML-gegevensbestand, waarop de transformatie zal worden toegepast
2. food.xsl - belangrijkste XSL-bestand, dat onze food.xml zal transformeren
3. inc_fruits.xsl - XSL-bestand dat onder meer zal maken vruchten gegevens
4. inc_vegtables.xsl - XSL-bestand dat onder meer zal maken vetetables gegevens
Ik denk niet dat ik moet uitleggen veel, de codes voor bovenstaande elementen, zal zijn spreekt voor zichzelf ...
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>
Download al deze bestanden hier (256 downloads)