Ваша таблица стилей имеет четыре правила шаблона. На английском языке эти правила:
(a) начинающийся сверху (match = "/"), сначала выведите элемент script, затем обработайте следующий уровень вниз (xsl: apply-templates) во входных данных.
(b) правило по умолчанию для элементов (match = "*") заключается в создании нового элемента в выходных данных с тем же именем и атрибутами, что и в оригинале, и создании его содержимого путем обработки следующего уровня в вход.
(c) правило для элементов с атрибутом class = "vcard" - ничего не делать с этим элементом, кроме как обрабатывать следующий уровень на входе.
(d) правило для элементов с атрибутом class = "fn" должно выводить
<u><a onMouseDown="show_hcard('X')">X</a></u>
где X - текстовое содержимое обрабатываемого элемента.
Более опытный пользователь XSLT написал бы последнее правило как
<xsl:template match="*[@class='fn']">
<u>
<a onMouseDown="show_hcard('{.}')">
<xsl:value-of select="."/>
</a>
</u>
</xsl:template>