问题的StringBuilder和XML文本
-
06-09-2019 - |
题
我有在VB 2008使用XML文本与一个StringBuilder如果我使用此代码一切都很好的问题。
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()方法调用,如果你需要一个字符串只得到它的字符串表示。
不隶属于 StackOverflow