Если вашей реальной целью является удаление ссылок с веб-страницы, то вам следует использовать такую таблицу стилей, которая соответствует всем элементам XHTML <a>
(я предполагаю, что вы используете XHTML?) И просто применяет шаблоны к их содержанию:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:h="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="h">
<!-- Don't copy the <a> elements, just process their content -->
<xsl:template match="h:a">
<xsl:apply-templates />
</xsl:template>
<!-- identity template; copies everything by default -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Эта таблица стилей будет иметь дело с ситуацией, когда у вас есть что-то вложенное в элементе <a>
, который вы хотите сохранить, например:
<p>Here is <a href="....">some <em>linked</em> text</a>.</p>
который вы захотите получить как:
<p>Here is some <em>linked</em> text.</p>
И это будет иметь дело с ситуацией, когда у вас есть связь, вложенная в неожиданный элемент между обычным родительским элементом (элемент <p>
) и элементом <a>
, например:
<p>Here is <em>some <a href="...">linked</a> text</em>.</p>