Включва XSL вътре XSL
Ако XML / XSL трансформира, е вашият domian, след това има моменти, когато сме се искат peice на динамичен код, за да се използва библиотека елемент (да се направи за многократна употреба). Какво искам да кажа, вероятно може да се направи по-ясно с този пример сценарий.
Представете си, вие създавате уеб сайт (и използване на XML, XSL transfroms разбира се) и повечето от страниците имат Коментари модул. Е! след това или да копирате или поставите този код във всяка страница шаблон (аз не се каже, но се поддръжка и преработи кошмар) или дори по-добре, вие създавате Включване на файл, който може да бъде изтеглен в където и да го искат в страницата си ( и) ...
И така, как да създаваме файл XSL Включи и го включите в друг файл на XSL? Ето как ...
Само за да направим нещата по-ясно ... тук е бърз списък на файловете, които ще създадете тук, ние ще се включва информация за плодове и зеленчуци в основната страница, наречена храна.
1. food.xml - XML данни, файл, на която ще се прилага трансформация
2. food.xsl - главния файл XSL, който ще преобрази нашата food.xml
3. inc_fruits.xsl - XSL файл, който ще направи плодове данни
4. inc_vegtables.xsl - XSL файл, който ще направи vetetables данни
Аз не мисля, че трябва да обясни много, кодовете по-горе елементи, ще бъде самостоятелно обяснителен ...
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 шаблон>
</ XSL стилове>
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>










































