我有一个需要返回XML字符串的WCF服务。但是似乎编写器只想构建一个文件,而不是一个字符串。我试过了:
string nextXMLstring = "";
using (XmlWriter writer = XmlWriter.Create(nextXMLstring))
这会生成一个错误,指出nextXMLstring没有文件路径。它想要这样的东西:
using (XmlWriter writer = XmlWriter.Create("nextXMLstring.xml"))
如何构建XML,然后将其作为字符串返回?
谢谢!!
发布于 2009-06-05 12:37:20
您需要创建一个StringWriter,并将其传递给XmlWriter。
XmlWriter.Create的字符串重载是针对文件名的。
例如。
using (var sw = new StringWriter()) {
using (var xw = XmlWriter.Create(sw)) {
// Build Xml with xw.
}
return sw.ToString();
}
发布于 2009-09-02 20:19:28
我知道这是老生常谈,但这里有另一种方法。特别是如果您不希望UTF8物料清单位于字符串的开头,并且希望文本缩进:
using (var ms = new MemoryStream())
using (var x = new XmlTextWriter(ms, new UTF8Encoding(false))
{ Formatting = Formatting.Indented })
{
// ...
return Encoding.UTF8.GetString(ms.ToArray());
}
发布于 2012-12-17 15:47:17
使用StringBuilder
var sb = new StringBuilder();
using (XmlWriter xmlWriter = XmlWriter.Create(sb))
{
...
}
return sb.ToString();
https://stackoverflow.com/questions/955611
复制相似问题