Ты не далеко. Причина, по которой вы не получаете никаких выходных данных, заключается в том, что ваш корневой шаблон соответствия не рекурсивен, а просто завершается, поэтому вам нужно поместить в него вызов apply-templates
. Следующая таблица стилей дает ожидаемый результат.
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="@*|node()">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>
<xsl:template match="source">
<xsl:value-of select="text()"/>
</xsl:template>
</xsl:stylesheet>
Обратите внимание, что я изменил режим вывода на text
и шаблон source
, чтобы просто выводить текстовое значение узла, потому что похоже, что вы хотите текст, а не вывод XML.