Есть xml структура:
<lev1>
<lev2_1>
<lev3_1>text...</lev3_1>
<lev3_2>text...</lev3_2>
</lev2_1>
<lev2_2>
<lev3_3>text...</lev3_3>
<lev3_4>
<lev4_1>need_search_text_here</lev4_1>
<lev4_tag1>text</lev4_tag1>
<lev4_tag2>text</lev4_tag2>
</lev3_4>
</lev2_2>
</lev1>
Задача: сохранять только элементы и его родителей, если в элементе содержится искомый текст.
Такой вариант почему-то копирует без тэгов элементов, т. е. только содержимое элементов:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="our_statistic" select="'search_text'"/>
<xsl:template match="lev3_4">
<xsl:choose>
<xsl:when test="string-length(text()) = string-length(translate(text(),$our_statistic,''))">
<xsl:copy-of select="../../node()" />
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>