Re: XSLT: замена символов
От: ibnTeo Россия http://ibnteo.klava.org/
Дата: 16.11.08 22:15
Оценка:
Здравствуйте, VB_Coder, Вы писали:

VB_>Есть вот такой XML


VB_>
VB_><a>
VB_>   Пример текста, пример текста, пример текста, пример текста.
VB_>  <b>
VB_>    Вот еще немного текста, вложенного в другой тег.
VB_>  </b>
VB_></a>
VB_>


VB_>Задача такая, нужно символ "," заменить везде на "<c/>,"


VB_>Использовал шаблон для замены текста из книги Валикова, но ничего хорошего не вышло.

VB_>Дело в том, что у меня в символ запятой встречается во вложенном теге,
VB_>а функция substring-before убирает все теги в переданной ей строке.

Здесь нужно обрабатывать text() отдельно, следует использовать такой шаблон:

<xsl:template select="@*|*">
  <xsl:copy>
    <xsl:apply-templates select="text()|@*|*"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="text()">
<xsl:apply-templates select="." mode="replace">
<xsl:with-param name="..." select="..."/>
...
</xsl:apply-templates>
</xsl:template>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.