2008 4 maig 2008

Incloure dins de XSL XSL

Si XML / XSL transforma és el seu domian, llavors hi ha moments en que volen un tros de codi dinàmic per a ser utilitzat element de la biblioteca (que es va fer re-utilitzables). El que vull dir, probablement podria ser més clar amb aquest escenari d'exemple.

Imagini que vostè està creant un lloc web (i l'ús d'XML, XSL transfroms és clar) i la majoria de les pàgines que tenen un mòdul de comentaris. Bé! llavors o bé copiar o enganxar aquest codi en totes les plantilles de pàgina (que jo no tenen veu, però que el manteniment i la modificació d'un malson) o millor encara, crear un arxiu d'inclusió que pot ser tirat en allà on vostè ho desitja a la seva pàgina ( s) ...
Així que com podem crear un arxiu XSL INCLUDE i incloure'l dins d'un altre arxiu XSL? Aquí és com ...

Només per deixar les coses clares ... aquí està la llista ràpida dels arxius que vostè cregui ... aquí, estarem incloent informació sobre les fruites i verdures en una pàgina principal anomenada dels aliments.

1. food.xml - arxiu de dades XML en el qual s'aplica la transformació
2. food.xsl - principal arxiu XSL que transformarà la nostra food.xml
3. inc_fruits.xsl - XSL arxiu d'inclusió que es processen les dades de les fruites
4. inc_vegtables.xsl - XSL arxiu d'inclusió que es processen les dades vetetables

No crec que he d'explicar molt, els codis dels elements anteriors, s'explica per si mateix ...

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>

Descarregar tots els arxius anteriors aquí (256 descàrregues)


NDK a casa | Expressant IT | Boca Expressant | Penmenship Expressant | Awe Expressant | expressar-me