2009-05-29 60 views
0

我在VB 2008中使用XML文字和StringBuilder時遇到問題。如果我使用此代碼,一切都很好。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沒有相應的結束標記時,它的行爲就像它超越了)並一直在尋找它。

我在這裏做錯了嗎?

回答

1

因爲你沒有形成在XML文字敘述正確的XML(在你的情況你不關閉你的標記),則不能使用XML文字在這裏。您或者需要讓XML文字成爲正確的XML,或者將您的代碼轉換爲字符串。因此:

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

msgbox("nothing happens") 
1

顯而易見的預感是XML文字需要格式良好的XML。如果你想換東西,在嵌入式表達下降,因爲在...

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

我從來沒有使用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()? 
1

沒有答案,但問題回到你身邊。在字符串生成器中使用XML Literals的價值是什麼。至少對我來說,這與穀物不符。如果您需要字符串,請使用文字創建您的XML,然後使用.ToString()方法調用獲取其字符串表示形式。