繁体   English   中英

StringBuilder和XML文字的问题

[英]Problem with StringBuilder and XML Literals

我在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没有相应的结束标记时,它的作用就好像超出了)并一直在寻找它。

我在这里做错什么了吗?

我从未使用过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 Literal语句中形成适当的XML(对于您而言,您没有关闭标签),因此您不能在此处使用XML Literal。 您要么需要使XML文字是正确的XML,要么转换您的代码以将它们用作字符串。 从而:

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

msgbox("nothing happens")

不是答案,而是问您。 将XML文字与字符串构建器一起使用的价值是什么。 至少在我看来,这与事实背道而驰。 使用文字创建XML,然后如果需要字符串,则使用.ToString()方法调用获取其字符串表示形式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM