select="child::name/following-sibling::*"
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>
Related examples in the same category