У меня есть XML, который в одном узле имеет кучу текста с несколькими абзацами. Мне нужно заменить \ n на </p><p>
, в текстовом разделе все будут иметь <p>
в начале и </p>
в конце определения XSLT.XSLT заменить n на</p><p>
Я попытался это, но он дает мне ошибку в Saxon: Переменная find_all не была объявлена (или декларация не в объеме)
<xsl:template match="/csv/row/col[17]">
<xsl:param name="find_all">
<xsl:value-of select="."/>
</xsl:param>
<xsl:param name="find_return">
<xsl:text>(.*)\n(.*)</xsl:text>
</xsl:param>
<xsl:param name="replace_return">
<xsl:text>$1</p><p>$2</xsl:text>
</xsl:param>
</xsl:template>
И потом это:
<col name="Model descr.">
<content>
<xsl:text><p></xsl:text>
</content>
<content>
<xsl:value-of select="replace($find_all, $find_return, $replace_return)"/>
</content>
<content>
<xsl:text></p></xsl:text>
</content>
</col>
Что здесь не так?
Благодаря
Jan
Вам также может понадобиться ' XSL: шаблон>', чтобы избежать двух уровней 'p' тегов, если есть существуют отмеченные абзацы. –
Я не уверен, что это сработает для меня. То, что я работаю, - это система, которая получает XML, отправляет ее процессору, который создает HMTL, а из HTML выводит PDF-файл.Каждый узел в моем XML предназначен для переменной в JavsScript, который сочетается с HTML-шаблоном, который становится PDF. Итак, в шаблоне HTML у нас уже есть DIV и тег P для этой переменной. Моя проблема в том, что длинный текст содержит разрывы строк. Поскольку тег начального абзаца уже существует, я должен преобразовать строку в конец P, а затем новый старт P, см. Заголовок моего сообщения. –