mar*_*ark 6 .net c# xml linq-to-xml
我有一个XElement实例,我希望使用XmlWriter类写入流.为什么?好吧,其中一个配置设置定义是否使用二进制Xml.根据此设置,将XmlWriter创建一个合适的实例 - 或者通过XmlWriter.Create(stream)或XmlDictionaryWriter.CreateBinaryWriter(stream)).
无论如何,我正在尝试以下代码,但它将流留空:
using (var stream = new MemoryStream())
{
var xmlReader = new XDocument(xml).CreateReader();
xmlReader.MoveToContent();
var xmlWriter = GetXmlWriter(stream);
xmlWriter.WriteNode(xmlReader, true);
return stream.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
我检查过,在根XML元素xmlReader后正确对齐MoveToContent.
我一定做错了什么,但是什么?
谢谢.
Jon*_*eet 10
你没有展示GetXmlWriter的作用......但是你试过刷新作者吗?
xmlWriter.Flush();
Run Code Online (Sandbox Code Playgroud)
或者,XmlWriter在另一个using语句中包装:
using (var stream = new MemoryStream())
{
var xmlReader = new XDocument(xml).CreateReader();
xmlReader.MoveToContent();
using (var xmlWriter = GetXmlWriter(stream))
{
xmlWriter.WriteNode(xmlReader, true);
}
return stream.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
你可能也想做同样的事情XmlReader,虽然在这种特殊情况下我不相信你特别需要.
说完这一切之后,我不完全确定你为什么要使用它XmlReader.你有什么理由不能找到相关XElement和使用XElement.WriteTo(XmlWriter)?或者,如果您要复制整个文档,只需使用即可XDocument.WriteTo(XmlWriter)
| 归档时间: |
|
| 查看次数: |
7638 次 |
| 最近记录: |