2. the order in the source is
for each element in the source code { find a best fit template to the element if (found) { apply the template to the element } else { next } }
<?xml version="1.0" encoding="UTF-8"?> <root> <AA id="aa1"> AA1 </AA> <AA id="aa2"> AA2 </AA> <AA id="aa3"> AA3 </AA> <BB id="bb1"> BB1 </BB> <BB id="bb2"> BB2 </BB> <BB id="bb3"> BB3 </BB> <AA id="aa4"> AA4 </AA> <AA id="aa5"> AA5 </AA> </root>
<?xml version="1.0" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="AA"> <a> <xsl:value-of select="name()"/> <xsl:value-of select="@id"/> </a> </xsl:template> <xsl:template match="BB"> <b> name=<xsl:value-of select="name()"/> id=<xsl:value-of select="@id"/> </b> </xsl:template> </xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?> <a>AAaa1</a> <a>AAaa2</a> <a>AAaa3</a> <b> name=BB id=bb1</b> <b> name=BB id=bb2</b> <b> name=BB id=bb3</b> <a>AAaa4</a> <a>AAaa5</a>