Вот краткое и полное решение :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="provides">
<xsl:value-of select="concat(.,'
')"/>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
, когда это преобразование применяется к предоставленному документу XML:
<root>
<serviceImpl category="default">
<package>esterMemoryManagement</package>
<service singleton="true">
<provides>xoc.hw.cor.memgt.ZContentType</provides>
<brief>This sis first sdrevice</brief>
</service>
</serviceImpl>
<serviceImpl category="default">
<package>w.cor.TesterM</package>
<service singleton="true">
<provides>xoc.hw.ZAccessTypeProvid</provides>
<brief>This sis first sdrevice</brief>
</service>
</serviceImpl>
</root>
желаемый, правильный результат получается :
xoc.hw.cor.memgt.ZContentType
xoc.hw.ZAccessTypeProvid
Пояснение :
Единственныйшаблон, который выдает результат: , соответствующий provides
.
Второй шаблон соответствует любому текстовому узлу и имеет пустое тело , которое эффективно переопределяетвстроенный шаблон XSLT для текстовых узлов и предотвращает («удаляет») любой сопоставленный текстовый узел от вывода (действие, которое в противном случае было бы выполнено встроенным шаблоном XSLT).