HTML gerendert falsch in .NET
-
22-07-2019 - |
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:
<BR>
Ich kann nur annehmen, dass es voran geht und versucht, es zu machen. Gibt es eine Möglichkeit, jene </>
zurück in die Klammern umwandeln kann, damit ich den Zeilenumbruch Ich versuche, für bekommen?
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"><br></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("<br>"));
Console.ReadKey();
}
}
...
Verstanden! Oben auf der gewählte Antwort, ich habe auch etwas Ähnliches wie dieses auf meinem string:
htmlString = htmlString.Replace("<","<")
htmlString = htmlString.Replace(">",">")
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