Frage

Ich versuche, die Zeichenfolge „<BR>“ in VB.NET zu nehmen und wandeln sie durch XSLT in HTML. Wenn die HTML herauskommt, aber es sieht wie folgt aus:

&lt;BR&gt;

Ich kann nur annehmen, dass es voran geht und versucht, es zu machen. Gibt es eine Möglichkeit, jene &lt;/&gt; zurück in die Klammern umwandeln kann, damit ich den Zeilenumbruch Ich versuche, für bekommen?

War es hilfreich?

Lösung

Überprüfen Sie die XSLT hat:

<xsl:output method="html"/>

edit: Erklärung von Kommentaren

Mit dem Standard-XSLT-Ausgänge als XML (1) was bedeutet, dass es keine signifikanten Zeichen entkommen. Sie können dies in bestimmten Fällen außer Kraft setzen mit dem Attribut disable-output-escaping="yes" (intro hier ), aber viel leistungsfähiger ist die Ausgabe an den expliziten Wert von HTML zu ändern, die global gleichen Nutzen vertraut, wie die folgenden:

  
      
  • Für Drehbuch und Stilelemente, ersetzen Sie alle Zeichen entkommen (z   als & und>) mit ihren tatsächlichen Werten   (& Und>, respectively).
  •   
  • Für Attribute, ersetzen Sie alle Vorkommen von> mit>.
  •   
  • Schreiben Sie leere Elemente wie <br>, <img> und <input> ohne   Schließen-Tags oder Schrägstriche.
  •   
  • Schreiben Attribute, die Informationen durch ihre Anwesenheit vermitteln als   im Gegensatz zu ihrem Wert, wie beispielsweise   in minimiert geprüft und ausgewählt,   Form.
  •   

von einem festen IBM Artikel Deckung Gegenstand, aktuellere Berichterstattung von stylusstudio hier

Wenn die HTML-Ausgabe ist, was Sie wünschen HTML-Ausgabe ist, was Sie sollten angeben.

(1) Es gibt tatsächlich Ecke Fall, in dem Ausgang standardmäßig HTML, aber ich glaube nicht, es ist universell und es ist eine Art von stumpfen darauf ab.

Andere Tipps

Versuchen Sie es mit <xsl:text disable-output-escaping="yes">&lt;br&gt;</xsl:text> wraping

Sie wissen nicht, über XSLT aber ..

Eine Abhilfe könnte mit HttpUtility.HtmlDecode von System.Web-Namespace.

using System;
using System.Web;

class Program
{
    static void Main()
    {
        Console.WriteLine(HttpUtility.HtmlDecode("&lt;br&gt;"));
        Console.ReadKey();
    }
}

...

Verstanden! Oben auf der gewählte Antwort, ich habe auch etwas Ähnliches wie dieses auf meinem string:

htmlString = htmlString.Replace("&lt;","<")
htmlString = htmlString.Replace("&gt;",">")

Ich denke aber, dass am Ende, ich kann einfach alles mit <pre> Tags am Ende zu erhalten.

Die Zeichenfolge "<br>" ist bereits HTML so können Sie einfach Response.Write("<br>").

Aber Sie meantion XSLT so stelle ich mir dort einige auf Transformations gehen. In diesem Fall sicherlich die Transformation sollte es an der richtigen Stelle als Knoten wird eingefügt. Eine bessere Frage wird wahrscheinlich eine bessere Antwort bekommen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top