Я пишу это, потому что я действительно ударил стену и не могу идти вперед. В моей базе данных я сбежал с HTML следующим образом: "<p>My name is Freddy and I was"
.Проблема с побегом персонажа XSL
Я хочу показать это как HTML или разбить теги HTML в моем XSL-шаблоне. Оба решения будут работать для меня, и я выберу более быстрое решение.
Я читал несколько сообщений в Интернете, но не могу найти решение. Я также попытался отключить вывод-выход без успеха. В основном, похоже, проблема заключается в том, что где-то в XSL-исполнении двигатель меняет этот <p>
на этот: &lt;p&gt;
.
Он преобразует &
в &
. Если это поможет, вот мой XSL-код. Я попробовал несколько комбинаций с и без выходного тега сверху.
Любая помощь будет оценена по достоинству. Заранее спасибо.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="DocumentElement">
<div>
<xsl:attribute name="id">mySlides</xsl:attribute>
<xsl:apply-templates>
<xsl:with-param name="templatenumber" select="0"/>
</xsl:apply-templates>
</div>
<div>
<xsl:attribute name="id">myController</xsl:attribute>
<xsl:apply-templates>
<xsl:with-param name="templatenumber" select="1"/>
</xsl:apply-templates>
</div>
</xsl:template>
<xsl:template match="DocumentElement/QueryResults">
<xsl:param name="templatenumber">tobereplace</xsl:param>
<xsl:if test="$templatenumber=0">
<div>
<xsl:attribute name="id">myController</xsl:attribute>
<div>
<xsl:attribute name="class">article</xsl:attribute>
<h2>
<a>
<xsl:attribute name="class">title</xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="Title"/></xsl:attribute>
<xsl:attribute name="href">/stories/stories-details/articletype/articleview/articleid/<xsl:value-of select="ArticleId"/>/<xsl:value-of select="SEOTitle"/>.aspx</xsl:attribute>
<xsl:value-of select="Title"/>
</a>
</h2>
<div>
<xsl:attribute name="style">text-indent: 25px;</xsl:attribute>
<xsl:attribute name="class">articlesummary</xsl:attribute>
<xsl:call-template name="removeHtmlTags">
<xsl:with-param name="html" select="Summary" />
</xsl:call-template>
</div>
</div>
</div>
</xsl:if>
<xsl:if test="$templatenumber=1">
<div>
<xsl:attribute name="id">myController</xsl:attribute>
<span>
<xsl:attribute name="class">jFlowControl</xsl:attribute>
aa
</span>
</div>
</xsl:if>
</xsl:template>
<xsl:template name="removeHtmlTags">
<xsl:param name="html"/>
<xsl:choose>
<xsl:when test="contains($html, '<')">
<xsl:value-of select="substring-before($html, '<')"/>
<!-- Recurse through HTML -->
<xsl:call-template name="removeHtmlTags">
<xsl:with-param name="html" select="substring-after($html, '>')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$html"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
@Marcos, мне нужна помощь, чтобы понять, что вы пытаетесь сделать. Ваш XSLT указывает на его попытку вывода HTML, но затем у вас есть шаблон, указывающий, что вы удаляете теги HTML. Не знаете, почему вы пытаетесь это сделать. Если хотите, укажите дополнительную информацию. – Nick
Чтобы иметь возможность сказать что-нибудь о проблеме, было бы действительно полезно иметь пример ввода XML, который будет запускаться через таблицу стилей, и который обнаруживает эту проблему, а также знать, какой XSLT-процессор вы используете ... – Laurent