कोई XSL अंदर सीमांकित स्ट्रिंग Tokenizing
यदि अपनी आवश्यकता के लिए एक XML में एक नोड मूल्य है, कि मूल्य का एक सीमांकित स्ट्रिंग शामिल विभाजित है, अलग - अलग मदों में, तो आप सही जगह पहुँच गए हैं ... नीचे दिए गए उदाहरण पर एक नज़र है. यदि आप XML और XSL के एक थोड़ा के साथ परिचित हैं ... मुझे नहीं लगता कि आप किसी भी स्पष्टीकरण की आवश्यकता होगी.
इसके अलावा, इस उदाहरण, xsl तरह XSL कार्यों के उपयोग में शामिल हैं: कॉल टेम्पलेट, xsl: उपश्रेणी पहले xsl: उपश्रेणी के बाद, अगर है कि क्या आप के बाद कर रहे हैं.
तब्दील हो एक्सएमएल (food.xml) के:
मान लें कार्य करने के लिए अल्पविराम से टैग खोजशब्दों "" में स्ट्रिंग सीमांकित, tokenize है
<?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>
<keywords>Fruits, Vegetables, Pulses, Meat, Cereals </keywords>
</food>
(Food.xsl) 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="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XSL 1.0 Delimited String Tokeniser</title>
</head>
<body>
<xsl:value-of select="food/meta"/>
<div >
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="food/keywords" />
<xsl:with-param name="delimitr" select="','" />
</xsl:call-template>
</div>
</body>
</html>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="string" />
<xsl:param name="delimitr" />
<xsl:choose>
<xsl:when test="contains($string, $delimitr)">
<div style="border:1px solid red;">
<h3><xsl:value-of select="substring-before($string,$delimitr)" /></h3>
<xsl:variable name="data" select="substring-before($string,$delimitr)"/>
</div>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="substring-after($string, $delimitr)" /><xsl:with-param name="delimitr" select="$delimitr" /></xsl:call-template>
</xsl:when>
<xsl:otherwise>
<div style="border:1px solid red;">
<h3><xsl:value-of select="$string" /></h3>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
परिणामी उत्पादन HTML: -
<div>
<div style="border: 1px solid red;">
<h3>Fruits</h3>
</div>
<div style="border: 1px solid red;">
<h3> Vegetables</h3>
</div>
<div style="border: 1px solid red;">
<h3> Pulses</h3>
</div>
<div style="border: 1px solid red;">
<h3> Meat</h3>
</div>
<div style="border: 1px solid red;">
<h3> Cereals </h3>
</div>
</div>
कहने की जरूरत नहीं ... बस अपनी पसंद का सीमांकक पैरामीटर "delimitr" बदलने के











































