Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Select=child

File: Data.xml <?xml version="1.0"?> <?xml-stylesheet type="application/xml" href="Transform.xslt"?> <people>   <person born="2008" died="2008" id="1">     <name>       <first_name>A</first_name>       <last_name>B</last_name>     </name>     <profession>A</profession>     <profession>B</profession>     <profession>C</profession>   </person>   <person born="2007" died="2007" id="2">     <name>       <first_name>D</first_name>       <middle_initial>E</middle_initial>       <last_name>F</last_name>     </name>     <profession>G</profession>     <hobby>H</hobby>   </person> </people> File: Transform.xslt <?xml version="1.0"?>  <xsl:stylesheet version="1.0"                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   <xsl:template match="/">     <dl>       <xsl:apply-templates select="descendant::person"/>     </dl>   </xsl:template>      <xsl:template match="person">     <dt><xsl:value-of select="child::name"/></dt>     <dd>       <ul>         <xsl:apply-templates select="child::name/following-sibling::*"/>       </ul>     </dd>   </xsl:template>   <xsl:template match="*">     <li><xsl:value-of select="self::*"/></li>   </xsl:template>   <xsl:template match="homepage"                 xmlns:xlink="http://www.w3.org/1999/xlink">     <li><xsl:value-of select="attribute::xlink:href"/></li>   </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><dl><dt>       A       B     </dt><dd><ul><li>A</li><li>B</li><li>C</li></ul></dd><dt>       D       E       F     </dt><dd><ul><li>G</li><li>H</li></ul></dd></dl>