<a>
Пример текста, пример текста, пример текста, пример текста.
<b>
Вот еще немного текста, вложенного в другой тег.
</b>
</a>
Задача такая, нужно символ "," заменить везде на "<c/>,"
Использовал шаблон для замены текста из книги Валикова, но ничего хорошего не вышло.
Дело в том, что у меня в символ запятой встречается во вложенном теге,
а функция substring-before убирает все теги в переданной ей строке.
Здравствуйте, VB_Coder, Вы писали:
VB_>Есть вот такой XML
VB_>
VB_><a>
VB_> Пример текста, пример текста, пример текста, пример текста.
VB_> <b>
VB_> Вот еще немного текста, вложенного в другой тег.
VB_> </b>
VB_></a>
VB_>
VB_>Задача такая, нужно символ "," заменить везде на "<c/>,"
VB_>Использовал шаблон для замены текста из книги Валикова, но ничего хорошего не вышло. VB_>Дело в том, что у меня в символ запятой встречается во вложенном теге, VB_>а функция substring-before убирает все теги в переданной ей строке.
Здесь нужно обрабатывать text() отдельно, следует использовать такой шаблон:
T>><xsl:template select="@*|*"> T>> <xsl:copy> T>> <xsl:apply-templates select="text()|@*|*"/> T>> </xsl:copy> T>></xsl:template>
T>><xsl:template match="text()"> T>><xsl:apply-templates select="." mode="replace"> T>><xsl:with-param name="..." select="..."/> T>></xsl:apply-templates> T>></xsl:template>
А>А вы не подскажете, как надо дополнить "...." чтобы он преобразоваывал , на <c/> ?
Здравствуйте, alsemm, Вы писали:
A>Круто. Но сильно смахивает на написание какого-нибудь std::lower_bound на ассемблере. Перходите на XSLT2.0 и забудьте про этот кошмар.
Он есть не под все платформы out-of-box, а тащить много-метровую зависимость только из-за xslt не всегда хочется.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, alsemm, Вы писали:
A>>Круто. Но сильно смахивает на написание какого-нибудь std::lower_bound на ассемблере. Перходите на XSLT2.0 и забудьте про этот кошмар.
L>Он есть не под все платформы out-of-box, а тащить много-метровую зависимость только из-за xslt не всегда хочется.
Saxon есть бесплатно везде, где есть java.
Здравствуйте, alsemm, Вы писали:
L>>Он есть не под все платформы out-of-box, а тащить много-метровую зависимость только из-за xslt не всегда хочется. A>Saxon есть бесплатно везде, где есть java.
Здравствуйте, ibnTeo, Вы писали:
A>>Круто. Но сильно смахивает на написание какого-нибудь std::lower_bound на ассемблере. Перходите на XSLT2.0 и забудьте про этот кошмар.
T>Это было бы действительно круто, но не все программируют на яве. Поэтому пока старый добрый XSLT 1.0 буду использовать.
То что XSLT 1.0 — старый, согласен, но ни никак не добрый
Не понял, зачем программировать на яве? У вас, что трансформация из приложения запускается?
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, alsemm, Вы писали:
L>>>Он есть не под все платформы out-of-box, а тащить много-метровую зависимость только из-за xslt не всегда хочется. A>>Saxon есть бесплатно везде, где есть java.
L>Тут разве упоминалась java?
В исходном сообщении про контекст использования XSLT ничего не сказано. Если надо в приложение встроить — это одно, если просто xml перегнать и результат отдать куда-то (исходники погенерить, html какой статический и т.п.) — совсем другое дело. В этом случае разницы на каком языке написан инструмент я не вижу.
Мой комментарий про java был в ответ на
Он есть не под все платформы out-of-box
Вроде бы JRE есть на всех важных платформах, так что проблем с использованием конкретного XSLT2.0 процессора на разных платформах нет.