首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >写入字符串而不是文件的XmlWriter

写入字符串而不是文件的XmlWriter
EN

Stack Overflow用户
提问于 2009-06-05 12:33:36
回答 5查看 137.6K关注 0票数 127

我有一个需要返回XML字符串的WCF服务。但是似乎编写器只想构建一个文件,而不是一个字符串。我试过了:

代码语言:javascript
复制
string nextXMLstring = "";
using (XmlWriter writer = XmlWriter.Create(nextXMLstring))

这会生成一个错误,指出nextXMLstring没有文件路径。它想要这样的东西:

代码语言:javascript
复制
using (XmlWriter writer = XmlWriter.Create("nextXMLstring.xml"))

如何构建XML,然后将其作为字符串返回?

谢谢!!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-06-05 12:37:20

您需要创建一个StringWriter,并将其传递给XmlWriter。

XmlWriter.Create的字符串重载是针对文件名的。

例如。

代码语言:javascript
复制
using (var sw = new StringWriter()) {
  using (var xw = XmlWriter.Create(sw)) {
    // Build Xml with xw.


  }
  return sw.ToString();
}
票数 236
EN

Stack Overflow用户

发布于 2009-09-02 20:19:28

我知道这是老生常谈,但这里有另一种方法。特别是如果您不希望UTF8物料清单位于字符串的开头,并且希望文本缩进:

代码语言:javascript
复制
using (var ms = new MemoryStream())
using (var x = new XmlTextWriter(ms, new UTF8Encoding(false)) 
                   { Formatting = Formatting.Indented })
{
     // ...
     return Encoding.UTF8.GetString(ms.ToArray());
}
票数 31
EN

Stack Overflow用户

发布于 2012-12-17 15:47:17

使用StringBuilder

代码语言:javascript
复制
var sb = new StringBuilder();
    using (XmlWriter xmlWriter = XmlWriter.Create(sb))
    {
        ...
    }
return sb.ToString();
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/955611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档