質問

私はこのコードを使用する場合はすべてがうまくあるVB 2008でのStringBuilderでXMLリテラルを使用して問題を抱えている。

Dim html As New System.Text.StringBuilder

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

MsgBox("hello")

さて問題は、私は、コードで生成された何かを中心にHTMLをラップしたいです。

html.Append(<html><body>)

msgbox("nothing happens")
HTMLは、対応する終了タグを持っていない場合は、

、それは超えたような働き)と、それを探し続けています。

私はここで間違ってやっている何かがありますか?

役に立ちましたか?

解決

あなたのXMLリテラルの文(あなたのケースでは、あなたのタグを閉じていない)で、適切なXMLを形成していないので、

、あなたはここにXMLリテラルを使用することはできません。あなたのいずれかは、あなたのXMLリテラルが適切なXMLなる、あるいは文字列としてそれらを使用するようにコードを変換する必要があります。したがってます:

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

msgbox("nothing happens")

他のヒント

私はVBのXMLリテラルを使用したことがありませんが、私はXMLの多くを築いてきました。私はにStringWriter /てXmlTextWriterクラスを使用したい:

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()?

明白な予感は、XMLリテラルは、整形式XMLを必要とすることになります。あなたは、物事をラップしたい場合は、中...

のように埋め込み式にドロップします
html.Append(<html><body><%= contentExp %></body></html>)

はない答えが、あなたに戻って質問。何が文字列ビルダでXMLリテラルを使用しての値になります。それは穀物に反することを、少なくとも私には思えます。リテラルを使用してXMLを作成し、ちょうどあなたが文字列を必要とする場合.ToString()メソッドの呼び出しを使用して、その文字列表現を取得します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top