<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: xsl code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 16 May 2008 12:40:15 GMT</pubDate>
    <description>DZone Snippets: xsl code</description>
    <item>
      <title>Converting text to SVG</title>
      <link>http://snippets.dzone.com/posts/show/5388</link>
      <description>First of all the Ruby code reads the text, splits it into an array and then saves it in XML format.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'rexml/document'&lt;br /&gt;include REXML&lt;br /&gt;&lt;br /&gt;a = "Open source is a development method for software that harnesses the power of distributed peer &lt;br /&gt;review and transparency of process. The promise of open source is better quality, higher reliability, &lt;br /&gt;more flexibility, lower cost, and an end to predatory vendor lock-in.".split(' ') &lt;br /&gt;&lt;br /&gt;doc = Document.new&lt;br /&gt;doc.add_element('text')&lt;br /&gt;oline = Element.new('line')&lt;br /&gt;&lt;br /&gt;char_count = 0&lt;br /&gt;a.each do |word|&lt;br /&gt;  &lt;br /&gt;  oword = Element.new('word')&lt;br /&gt;  oword.text = word.to_s&lt;br /&gt;  oword.add_attribute('length',char_count)&lt;br /&gt;  oline &lt;&lt; oword &lt;br /&gt;  char_count += word.length&lt;br /&gt;  &lt;br /&gt;  if char_count &gt; 50&lt;br /&gt;    doc.root &lt;&lt; oline&lt;br /&gt;    oline = Element.new('line')&lt;br /&gt;    char_count = 0&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;doc.root &lt;&lt; oline&lt;br /&gt;puts char_count&lt;br /&gt;puts doc&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Here's a sample of the XML created&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;text&gt;&lt;br /&gt;  &lt;line&gt;&lt;br /&gt;    &lt;word length='0'&gt;Open&lt;/word&gt;&lt;word length='4'&gt;source&lt;/word&gt;&lt;word length='10'&gt;is&lt;/word&gt;&lt;br /&gt;    &lt;word length='12'&gt;a&lt;/word&gt;&lt;word length='13'&gt;development&lt;/word&gt;&lt;word length='24'&gt;method&lt;/word&gt;&lt;br /&gt;    &lt;word length='30'&gt;for&lt;/word&gt;&lt;word length='33'&gt;software&lt;/word&gt;&lt;word length='41'&gt;that&lt;/word&gt;&lt;br /&gt;    &lt;word length='45'&gt;harnesses&lt;/word&gt;&lt;br /&gt;  &lt;/line&gt;&lt;br /&gt;  &lt;line&gt;&lt;br /&gt;    &lt;word length='0'&gt;the&lt;/word&gt;&lt;word length='3'&gt;power&lt;/word&gt;&lt;br /&gt;    &lt;word length='8'&gt;of&lt;/word&gt;&lt;word length='10'&gt;distributed&lt;/word&gt;&lt;word length='21'&gt;peer&lt;/word&gt;&lt;br /&gt;    &lt;word length='25'&gt;review&lt;/word&gt;&lt;word length='31'&gt;and&lt;/word&gt;&lt;word length='34'&gt;transparency&lt;/word&gt;&lt;br /&gt;    &lt;word length='46'&gt;of&lt;/word&gt;&lt;word length='48'&gt;process.&lt;/word&gt;&lt;br /&gt;  &lt;/line&gt;&lt;br /&gt;  &lt;line&gt;&lt;br /&gt;    &lt;word length='0'&gt;The&lt;/word&gt;&lt;br /&gt;    &lt;word length='3'&gt;promise&lt;/word&gt;&lt;word length='10'&gt;of&lt;/word&gt;&lt;word length='12'&gt;open&lt;/word&gt;&lt;br /&gt;    &lt;word length='16'&gt;source&lt;/word&gt;&lt;word length='22'&gt;is&lt;/word&gt;&lt;word length='24'&gt;better&lt;/word&gt;&lt;br /&gt;    &lt;word length='30'&gt;quality,&lt;/word&gt;&lt;word length='38'&gt;higher&lt;/word&gt;&lt;word length='44'&gt;reliability,&lt;/word&gt;&lt;br /&gt;  &lt;/line&gt;&lt;br /&gt;  &lt;line&gt;&lt;br /&gt;    &lt;word length='0'&gt;more&lt;/word&gt;&lt;word length='4'&gt;flexibility,&lt;/word&gt;&lt;word length='16'&gt;lower&lt;/word&gt;&lt;br /&gt;    &lt;word length='21'&gt;cost,&lt;/word&gt;&lt;word length='26'&gt;and&lt;/word&gt;&lt;word length='29'&gt;an&lt;/word&gt;&lt;br /&gt;    &lt;word length='31'&gt;end&lt;/word&gt;&lt;word length='34'&gt;to&lt;/word&gt;&lt;word length='36'&gt;predatory&lt;/word&gt;&lt;br /&gt;    &lt;word length='45'&gt;vendor&lt;/word&gt;&lt;br /&gt;  &lt;/line&gt;&lt;br /&gt;  &lt;line&gt;&lt;br /&gt;    &lt;word length='0'&gt;lock-in.&lt;/word&gt;&lt;br /&gt;  &lt;/line&gt;&lt;br /&gt;&lt;/text&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The XML is then transformed to SVG using the following XSL file&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:output encoding="UTF-8"&lt;br /&gt;            method="xml"&lt;br /&gt;            indent="yes"/&gt;&lt;br /&gt;            &lt;br /&gt;  &lt;xsl:template match="text"&gt;&lt;br /&gt;    &lt;svg xmlns="http://www.w3.org/2000/svg" width="100%"&lt;br /&gt;                  xmlns:xlink="http://www.w3.org/1999/xlink" &gt;&lt;br /&gt;      &lt;g id="sketch" class="sketch"&gt;&lt;br /&gt;        &lt;xsl:apply-templates select="line"/&gt;&lt;br /&gt;      &lt;/g&gt;&lt;br /&gt;    &lt;/svg&gt;&lt;br /&gt;  &lt;/xsl:template&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;xsl:template match="line"&gt;&lt;br /&gt;    &lt;xsl:variable name="xfactor"&gt;12&lt;/xsl:variable&gt;&lt;br /&gt;    &lt;xsl:variable name="yfactor"&gt;20&lt;/xsl:variable&gt;&lt;br /&gt;    &lt;xsl:variable name="pos" select="position()"&gt;&lt;/xsl:variable&gt;&lt;br /&gt;    &lt;xsl:apply-templates select="word"&gt;&lt;br /&gt;      &lt;xsl:with-param name="xfactor" select="$xfactor"&gt;&lt;/xsl:with-param&gt;&lt;br /&gt;      &lt;xsl:with-param name="y" select="$pos * $yfactor + 10"&gt;&lt;/xsl:with-param&gt;&lt;br /&gt;    &lt;/xsl:apply-templates&gt;&lt;br /&gt;  &lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;  &lt;xsl:template match="word"&gt;&lt;br /&gt;    &lt;xsl:param name="xfactor"/&gt;&lt;br /&gt;    &lt;xsl:param name="y"/&gt;&lt;br /&gt;    &lt;text xmlns="http://www.w3.org/2000/svg" font-size="12pt" x="{@length * $xfactor +10}" y="{$y}" id="t1"&gt;&lt;xsl:value-of select="."/&gt;&lt;/text&gt;&lt;br /&gt;  &lt;/xsl:template&gt;&lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The final &lt;a href="http://www.twitxr.com/image/31865/"&gt;SVG output&lt;/a&gt; [twitxr.com] shows 5 lines of text with each word as a separate SVG text element.</description>
      <pubDate>Fri, 18 Apr 2008 18:14:11 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5388</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Passing an XSL param from one template to another</title>
      <link>http://snippets.dzone.com/posts/show/5387</link>
      <description>&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;&lt;br /&gt;&lt;xsl:stylesheet version="1.0"&lt;br /&gt;xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:variable name="xx"&gt;&lt;br /&gt;  &lt;html&gt;&lt;br /&gt;  &lt;body&gt;&lt;br /&gt;  &lt;xsl:call-template name="show_title"&gt;&lt;br /&gt;    &lt;xsl:with-param name="title" /&gt;&lt;br /&gt;  &lt;/xsl:call-template&gt;&lt;br /&gt;  &lt;/body&gt;&lt;br /&gt;  &lt;/html&gt;&lt;br /&gt;&lt;/xsl:variable&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template name="show_title" match="/"&gt;&lt;br /&gt;  &lt;xsl:param name="title" /&gt;&lt;br /&gt;  &lt;xsl:for-each select="catalog/cd"&gt;&lt;br /&gt;    &lt;p&gt;Title: &lt;xsl:value-of select="$title" /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;/xsl:for-each&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;source: &lt;a href="http://www.w3schools.com/XSL/el_param.asp"&gt;XSLT &lt;xsl:param&gt; Element&lt;/a&gt; [w3schools.com]</description>
      <pubDate>Fri, 18 Apr 2008 15:00:27 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5387</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Using XSLT to generate SVG</title>
      <link>http://snippets.dzone.com/posts/show/5375</link>
      <description>This XSL file is intended to be used as an SVG XSL template file which displays SVG content using Gorg (XSLT back-end processor).&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:output encoding="UTF-8"&lt;br /&gt;            method="xml"&lt;br /&gt;            indent="yes"/&gt;&lt;br /&gt;            &lt;br /&gt;  &lt;xsl:template match="mainpage"&gt;&lt;br /&gt;  &lt;svg xmlns="http://www.w3.org/2000/svg" width="100%"&lt;br /&gt;                xmlns:xlink="http://www.w3.org/1999/xlink" &gt;&lt;br /&gt;&lt;br /&gt;    &lt;g&gt;&lt;br /&gt;    &lt;text font-size="12pt" x="50" y="50" id="t2" stroke="olive"&gt;&lt;xsl:value-of select="title"/&gt;&lt;/text&gt;&lt;br /&gt;    &lt;/g&gt;&lt;br /&gt;&lt;br /&gt;  &lt;/svg&gt;&lt;br /&gt;  &lt;/xsl:template&gt;&lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Reference: 'using XSLT to generate SVG' http://snurl.com/24pwo [carto.net] </description>
      <pubDate>Thu, 17 Apr 2008 10:45:36 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5375</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Transforming an XML file into an XSL file</title>
      <link>http://snippets.dzone.com/posts/show/4842</link>
      <description>This XSL uses the XML for creating another XSL file which renders a web page containing records for a specific project, but I have found the projects I am working on use similar page layouts (ie. menu, body(articles), inputs, and buttons), so it makes sense to re-use a generic template.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;&lt;br /&gt;&lt;br /&gt;  &lt;xsl:template match="recordx"&gt;&lt;br /&gt;    &lt;xsl:variable name="colon"&gt;&lt;xsl:text&gt;:&lt;/xsl:text&gt;&lt;/xsl:variable&gt;&lt;br /&gt;    &lt;xsl:element name="xsl:stylesheet"&gt;&lt;br /&gt;      &lt;xsl:attribute name="xmlns{$colon}xsl"&gt;&lt;br /&gt;        &lt;xsl:text&gt;http://www.w3.org/1999/XSL/Transform&lt;/xsl:text&gt;&lt;br /&gt;      &lt;/xsl:attribute&gt;&lt;br /&gt;      &lt;xsl:attribute name="version"&gt;&lt;br /&gt;        &lt;xsl:text&gt;1.0&lt;/xsl:text&gt;&lt;br /&gt;      &lt;/xsl:attribute&gt;&lt;br /&gt;      &lt;xsl:element name="xsl:template"&gt;&lt;br /&gt;      &lt;xsl:attribute name="match"&gt;&lt;br /&gt;        &lt;xsl:value-of select="summary/project"/&gt;&lt;xsl:text&gt;page&lt;/xsl:text&gt;&lt;br /&gt;      &lt;/xsl:attribute&gt;&lt;br /&gt;      &lt;xsl:copy-of select="menu/*"/&gt;&lt;br /&gt;      &lt;xsl:copy-of select="articles/*"/&gt;&lt;br /&gt;      &lt;/xsl:element&gt;&lt;br /&gt;      &lt;xsl:element name="xsl:template"&gt;&lt;br /&gt;        &lt;xsl:attribute name="match"&gt;&lt;br /&gt;          &lt;xsl:value-of select="summary/project"/&gt;&lt;xsl:text&gt;page/inputs&lt;/xsl:text&gt;&lt;br /&gt;      &lt;/xsl:attribute&gt;&lt;br /&gt;      &lt;xsl:element name="div"&gt;&lt;br /&gt;        &lt;xsl:element name="dl"&gt; &lt;br /&gt;          &lt;xsl:for-each select="records/fields"&gt;&lt;br /&gt;            &lt;xsl:if test="c='true'"&gt;&lt;br /&gt;              &lt;xsl:element name="xsl:apply-templates"&gt;&lt;br /&gt;                &lt;xsl:attribute name="select"&gt;&lt;xsl:copy-of select="field"/&gt;&lt;/xsl:attribute&gt;&lt;br /&gt;              &lt;/xsl:element&gt;&lt;br /&gt;            &lt;/xsl:if&gt;&lt;br /&gt;          &lt;/xsl:for-each&gt;&lt;br /&gt;        &lt;/xsl:element&gt;&lt;br /&gt;      &lt;/xsl:element&gt;&lt;br /&gt;      &lt;/xsl:element&gt;      &lt;br /&gt;      &lt;xsl:call-template name="inputx" /&gt;      &lt;br /&gt;    &lt;/xsl:element&gt;&lt;br /&gt;  &lt;/xsl:template&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;xsl:template name="inputx"&gt;&lt;br /&gt;    &lt;xsl:apply-templates select="records/fields"/&gt;&lt;br /&gt;  &lt;/xsl:template&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;xsl:template match="records/fields"&gt;&lt;br /&gt;    &lt;xsl:if test="c='true'"&gt;&lt;br /&gt;    &lt;xsl:element name="xsl:template"&gt;&lt;br /&gt;      &lt;xsl:attribute name="match"&gt;&lt;xsl:value-of select="field"/&gt;&lt;/xsl:attribute&gt;&lt;br /&gt;        &lt;dt&gt;&lt;br /&gt;          &lt;xsl:element name="label"&gt;&lt;br /&gt;            &lt;xsl:attribute name="for"&gt;&lt;xsl:text&gt;title&lt;/xsl:text&gt;&lt;/xsl:attribute&gt;&lt;br /&gt;            &lt;xsl:element name="xsl:value-of"&gt;&lt;br /&gt;              &lt;xsl:attribute name="select"&gt;&lt;xsl:text&gt;@title&lt;/xsl:text&gt;&lt;/xsl:attribute&gt;&lt;br /&gt;            &lt;/xsl:element&gt;&lt;br /&gt;          &lt;/xsl:element&gt;&lt;br /&gt;        &lt;/dt&gt;&lt;br /&gt;        &lt;dd&gt;&lt;br /&gt;          &lt;xsl:element name="input"&gt;&lt;br /&gt;            &lt;xsl:attribute name="type"&gt;&lt;xsl:text&gt;text&lt;/xsl:text&gt;&lt;/xsl:attribute&gt;&lt;br /&gt;            &lt;xsl:attribute name="id"&gt;&lt;xsl:text&gt;title&lt;/xsl:text&gt;&lt;/xsl:attribute&gt;&lt;br /&gt;            &lt;xsl:attribute name="size"&gt;&lt;xsl:text&gt;{@size}&lt;/xsl:text&gt;&lt;/xsl:attribute&gt;            &lt;br /&gt;          &lt;/xsl:element&gt;&lt;br /&gt;        &lt;/dd&gt;&lt;br /&gt;    &lt;/xsl:element&gt;&lt;br /&gt;    &lt;/xsl:if&gt;&lt;br /&gt;  &lt;/xsl:template&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;... and here's the XML which is used by the XSL above.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;recordx&gt;&lt;br /&gt;&lt;summary&gt;&lt;project&gt;books&lt;/project&gt;&lt;parent_element&gt;book_entry&lt;/parent_element&gt;&lt;/summary&gt;&lt;br /&gt;&lt;menu&gt;&lt;br /&gt;  &lt;div id="gboxes"&gt;&lt;br /&gt;    &lt;ul&gt;&lt;br /&gt;      &lt;li&gt;&lt;a href="/empsearch/devsearch.xml?id=all"&gt;home&lt;/a&gt;&lt;/li&gt; &lt;br /&gt;      &lt;li&gt;&lt;a href="/main/development_blog.xml"&gt;development&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;    &lt;/ul&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/menu&gt;&lt;br /&gt;&lt;articles&gt;&lt;br /&gt;  &lt;div id="articles"&gt;&lt;br /&gt;    &lt;h1&gt;www&lt;xsl:value-of select="@title" /&gt;&lt;/h1&gt;&lt;br /&gt;    &lt;div&gt;&lt;br /&gt;      &lt;xsl:apply-templates select="inputs"&gt;&lt;/xsl:apply-templates&gt;&lt;br /&gt;    &lt;/div&gt;&lt;br /&gt;    &lt;div&gt;&lt;br /&gt;      &lt;xsl:apply-templates select="buttons"&gt;&lt;/xsl:apply-templates&gt;&lt;br /&gt;    &lt;/div&gt;&lt;br /&gt;    &lt;span id="in1"&gt;&lt;/span&gt;&lt;br /&gt;  &lt;/div&gt; &lt;br /&gt;&lt;/articles&gt;&lt;br /&gt;&lt;records&gt;&lt;br /&gt;&lt;fields id='17647'&gt;&lt;field&gt;author&lt;/field&gt;&lt;c&gt;true&lt;/c&gt;&lt;r&gt;true&lt;/r&gt;&lt;u&gt;true&lt;/u&gt;&lt;/fields&gt;&lt;br /&gt;&lt;fields id='17675'&gt;&lt;field&gt;subject&lt;/field&gt;&lt;c&gt;true&lt;/c&gt;&lt;r&gt;true&lt;/r&gt;&lt;u&gt;false&lt;/u&gt;&lt;/fields&gt;&lt;br /&gt;&lt;fields id='17699'&gt;&lt;field&gt;rating&lt;/field&gt;&lt;c/&gt;&lt;r/&gt;&lt;u/&gt;&lt;/fields&gt;&lt;br /&gt;&lt;fields id='17700'&gt;&lt;field&gt;last_modified&lt;/field&gt;&lt;c/&gt;&lt;r/&gt;&lt;u/&gt;&lt;/fields&gt;&lt;br /&gt;&lt;/records&gt;&lt;br /&gt;&lt;/recordx&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;</description>
      <pubDate>Tue, 04 Dec 2007 19:56:00 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4842</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Geni2gedcom</title>
      <link>http://snippets.dzone.com/posts/show/4081</link>
      <description>Tansform gedcom-XML output of geni.com to dot file for graphviz&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?xml version='1.0' ?&gt;&lt;br /&gt;&lt;xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'&gt;&lt;br /&gt;&lt;xsl:output method='text'/&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template match="GEDCOM"&gt;&lt;br /&gt;        digraph &amp;apos;G&amp;apos; {&lt;br /&gt;        &lt;xsl:apply-templates select="FamilyRec"/&gt;&lt;br /&gt;        &lt;xsl:apply-templates select="IndividualRec"/&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template match="IndividualRec"&gt;&lt;br /&gt;        &lt;xsl:value-of select="@Id"/&gt;[ label=&amp;quot;&lt;xsl:value-of select="IndivNam&lt;br /&gt;e/GivenName"/&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;xsl:value-of select="IndivName/SurName"/&gt; &amp;&lt;br /&gt;quot;];&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template match="FamilyRec"&gt;&lt;br /&gt;        &lt;xsl:variable name="famId"&gt;&lt;xsl:value-of select="@Id"/&gt;&lt;/xsl:variable&gt;&lt;br /&gt;        &lt;xsl:if test="HusbFath"&gt;&lt;br /&gt;                &lt;xsl:value-of select="HusbFath/Link/@Ref"/&gt;-&amp;gt;&lt;xsl:value-of se&lt;br /&gt;lect="$famId"/&gt;;&lt;br /&gt;        &lt;/xsl:if&gt;&lt;br /&gt;&lt;br /&gt;        &lt;xsl:if test="WifeMoth"&gt;&lt;br /&gt;                &lt;xsl:value-of select="WifeMoth/Link/@Ref"/&gt;-&amp;gt;&lt;xsl:value-of se&lt;br /&gt;lect="$famId"/&gt;;&lt;br /&gt;        &lt;/xsl:if&gt;&lt;br /&gt;&lt;br /&gt;        &lt;xsl:for-each select="Child"&gt;&lt;br /&gt;                &lt;xsl:value-of select="$famId"/&gt;-&amp;gt;&lt;xsl:value-of select="Link/@&lt;br /&gt;Ref"/&gt;;&lt;br /&gt;        &lt;/xsl:for-each&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 31 May 2007 08:22:10 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4081</guid>
      <author>lindenb (Pierre)</author>
    </item>
    <item>
      <title>opml xsl transformation schema</title>
      <link>http://snippets.dzone.com/posts/show/3653</link>
      <description>// description of your code here&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;!-- &lt;br /&gt; mbi: largely inspired by the excellent work by Makenshi: http://chaz6.com/static/xml/test.opml &lt;br /&gt;--&gt;&lt;br /&gt;&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;&lt;br /&gt;	&lt;xsl:output method="html" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" doctype-public="-//W3C//DTD XHTML 1.1//EN"/&gt;&lt;br /&gt;	&lt;br /&gt;&lt;br /&gt;	&lt;xsl:param name="sort-type" select="'text'"/&gt;&lt;br /&gt;	&lt;xsl:param name="sort-order" select="'ascending'"/&gt;&lt;br /&gt;&lt;br /&gt;	&lt;xsl:template match="/"&gt;&lt;br /&gt;		&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;&lt;br /&gt;			&lt;head&gt;&lt;br /&gt;				 &lt;title&gt;&lt;xsl:value-of select="/opml/head/title"/&gt;&lt;/title&gt; &lt;br /&gt;				&lt;link rel="stylesheet" href="themes/default/web/css/look.css" type="text/css" /&gt;&lt;br /&gt;				&lt;link rel="stylesheet" href="themes/default/web/css/layout.css" type="text/css" /&gt;&lt;br /&gt;			&lt;/head&gt;&lt;br /&gt;            &lt;xsl:apply-templates select="opml/body" /&gt;&lt;br /&gt;		&lt;/html&gt;&lt;br /&gt;	&lt;/xsl:template&gt;&lt;br /&gt;	&lt;xsl:template match="opml/body"&gt;&lt;br /&gt;		&lt;body&gt;&lt;br /&gt;			&lt;div id="opml" class="frame"&gt;&lt;br /&gt;					&lt;h1&gt;&lt;xsl:value-of select="/opml/head/title" /&gt;&lt;/h1&gt;			&lt;br /&gt;						&lt;ul&gt;&lt;br /&gt;						&lt;xsl:apply-templates select="outline"&gt;&lt;br /&gt;							&lt;xsl:sort select="@title"/&gt;&lt;br /&gt;						&lt;/xsl:apply-templates&gt;&lt;br /&gt;						&lt;/ul&gt;&lt;br /&gt;			 &lt;/div&gt;&lt;br /&gt;		&lt;/body&gt;&lt;br /&gt;	&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;	&lt;xsl:template match="outline"&gt;&lt;br /&gt;		&lt;xsl:choose&gt;&lt;br /&gt;			&lt;xsl:when test="not(@xmlUrl)"&gt;&lt;br /&gt;				&lt;li class="folder"&gt;&lt;span&gt;&lt;xsl:value-of select="@text"/&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;				&lt;li&gt;&lt;ul&gt;&lt;br /&gt;				  &lt;xsl:apply-templates select="outline"&gt;&lt;xsl:sort select="@text"/&gt;&lt;/xsl:apply-templates&gt;&lt;br /&gt;				&lt;/ul&gt;&lt;br /&gt;				&lt;/li&gt;&lt;br /&gt;			&lt;/xsl:when&gt;&lt;br /&gt;			&lt;xsl:otherwise&gt;&lt;br /&gt;			        &lt;li&gt;&lt;br /&gt;				  &lt;span style="font-weight:900"&gt;&lt;br /&gt;				    &lt;xsl:value-of select="@text"/&gt;&lt;br /&gt;				  &lt;/span&gt;&lt;br /&gt;				[&lt;a href="{@xmlUrl}"&gt;xml&lt;/a&gt;&lt;br /&gt;				&lt;xsl:choose&gt;&lt;br /&gt;					&lt;xsl:when test="starts-with(@htmlUrl,'http')"&gt;|&lt;a href="{@htmlUrl}"&gt;www&lt;/a&gt;&lt;br /&gt;					&lt;/xsl:when&gt;&lt;br /&gt;				&lt;/xsl:choose&gt;]&lt;br /&gt;				&lt;xsl:choose&gt;&lt;br /&gt;				    &lt;xsl:when test="string-length(@description)"&gt;&lt;br /&gt;				      &lt;span style="margin-left: 10px;"&gt;(&lt;xsl:value-of select="@description"/&gt;)&lt;/span&gt;&lt;br /&gt;				    &lt;/xsl:when&gt;&lt;br /&gt;				&lt;/xsl:choose&gt;&lt;br /&gt;				&lt;/li&gt;&lt;br /&gt;			&lt;/xsl:otherwise&gt;&lt;br /&gt;		&lt;/xsl:choose&gt;&lt;br /&gt;	&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 09 Mar 2007 23:50:35 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3653</guid>
      <author>jasonbentley (Jason Bentley)</author>
    </item>
    <item>
      <title>Conditional comment</title>
      <link>http://snippets.dzone.com/posts/show/3268</link>
      <description>From the microsoft website. Better than browser sniffing, the content within the tags will be shown if the condition within [] is met, in the this case IE, but you could also use IE 7 for example&lt;br /&gt;&lt;code&gt;&lt;br /&gt;  &lt;!--[if IE]&gt;&lt;br /&gt;    Content&lt;br /&gt;  &lt;![endif]--&gt;&lt;br /&gt;&lt;br /&gt;  &lt;!--[if lt IE6]&gt; //lower than IE6&lt;br /&gt;    Content&lt;br /&gt;  &lt;![endif]--&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and the XSL version&lt;br /&gt;&lt;br /&gt;  &lt;xsl:comment&gt;[if IE 7]&amp;gt;&lt;br /&gt;    Content &amp;lt;![endif]&lt;/xsl:comment&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 10 Jan 2007 22:14:46 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3268</guid>
      <author>Booma (Alan Coleman)</author>
    </item>
  </channel>
</rss>
