2009-05-29 62 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()方法调用获取其字符串表示形式。