@Programep

Можно ли решить такую задачу с помощью xslt шаблона?

Есть 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>
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы