Ich schreibe dies, weil ich wirklich die Wand getroffen habe und nicht weitermachen kann. In meiner Datenbank habe ich HTML wie folgt entkommen lassen: "<p>My name is Freddy and I was"
.XSL Zeichen Flucht Problem
Ich möchte es als HTML anzeigen ODER die HTML-Tags in meiner XSL-Vorlage entfernen. Beide Lösungen werden für mich funktionieren und ich werde die schnellere Lösung wählen.
Ich habe mehrere Beiträge online gelesen, kann aber keine Lösung finden. Ich habe auch disable-output-escape ohne Erfolg versucht. Grundsätzlich scheint es das Problem ist, dass irgendwo in der XSL-Ausführung der Motor diese <p>
in diese ändert: &lt;p&gt;
.
Es konvertiert die &
in &
. Wenn es hilft, hier ist mein XSL-Code. Ich habe mehrere Kombinationen mit und ohne das Ausgabe-Tag auf der Oberseite versucht.
Jede Hilfe wird geschätzt. Danke im Voraus.
<?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, ich brauche etwas Hilfe Verständnis, was Sie zu tun versuchen. Ihr XSLT zeigt an, dass versucht wird, HTML auszugeben, aber Sie haben dann eine Vorlage, die angibt, dass Sie HTML-Tags entfernen. Ich bin mir nicht sicher, warum Sie das versuchen. Bitte geben Sie weitere Informationen, wenn Sie können. – Nick
Um etwas über das Problem sagen zu können, wäre es wirklich nützlich, ein Beispiel für eine XML-Eingabe durch das Stylesheet zu haben, das das Problem aufweist und auch zu wissen, welcher XSLT-Prozessor Sie verwenden ... – Laurent