Frage

ich habe ein Problem mit XML-Literale mit einem Stringbuilder in VB 2008. Wenn ich diesen Code verwende alles ist in Ordnung.

Dim html As New System.Text.StringBuilder

html.Append(<html><body></body></html>)

MsgBox("hello")

Nun das Problem ist, ich will HTML wickeln um etwas, das in Code erzeugt wird.

html.Append(<html><body>)

msgbox("nothing happens")

Wenn das HTML den entsprechenden End-Tag nicht hat, wirkt es wie es über das geht) und hält danach zu suchen.

Gibt es etwas, was ich hier falsch mache?

War es hilfreich?

Lösung

Weil Sie nicht eine richtige XML in Ihrer XML-Literal Anweisung bilden (in Ihrem Fall sind Sie nicht Ihre Tags Schließen), können keine XML-Literale verwenden hier. Sie müssen entweder Ihre XML-Literale richtige XML haben, oder alternativ konvertieren Sie den Code sie als Zeichenketten zu verwenden. Also:

html.Append("<html><body>")

msgbox("nothing happens")

Andere Tipps

Ich habe noch nie VB XML-Literale verwendet, aber ich habe eine Menge von XML aufgebaut. Ich mag die String / XMLTextWriter Klassen verwenden:

StringBuilder sb = new StringBuilder();
using (StringWriter sw = new StringWriter(sb))
{
    XmlTextWriter xw = new XmlTextWriter(sw);
    xw.WriteStartElement("html");
    xw.WriteStartElement("body");
    xw.WriteRaw(contentExp);
    ...
    wr.WriteEndElement();   // body
    wr.WriteEndElement();   // html
}
// do something with sb.ToString()?

Die offensichtliche Vermutung wäre, dass XML-Literale erfordert gut geformt XML. Wenn Sie wollen die Dinge wickeln, fallen in einem eingebetteten Ausdruck wie in ...

html.Append(<html><body><%= contentExp %></body></html>)

Nicht eine Antwort, aber Frage an Sie zurück. Was wäre der Wert mit String-Builder XML-Literale verwenden. Es scheint zumindest für mich, dass das gegen den Strich geht. Erstellen Sie Ihre XML-Literale verwenden und erhalten dann nur noch die String-Darstellung der .ToString () -Methode verwenden, wenn Sie eine Zeichenfolge benötigen.

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