2. if no template matchs, apply-tempaltes produce all text contents of all descent children
<?xml version="1.0" encoding="UTF-8"?>
<root>
<AA id="a">
inside A
<BB id="b">
Inside B
<other>More Text</other>
</BB>
</AA>
</root>
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="AA">
<xsl:apply-templates mode="run1"/>
<xsl:apply-templates mode="run2"/>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="BB" mode="run1">
<run1>
name=<xsl:value-of select="name()"/>
id=<xsl:value-of select="@id"/>
</run1>
</xsl:template>
<xsl:template match="BB" mode="run2">
<run2>
name=<xsl:value-of select="name()"/>
id=<xsl:value-of select="@id"/>
</run2>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
inside A
<run1>
name=BB
id=b</run1>
inside A
<run2>
name=BB
id=b</run2>
inside A
Inside B
More Text