c# - 数据集 -> XML 文档 - 将数据集加载到 XML 文档中 - C#.Net

标签 c# xml dataset

我正在尝试将数据集读取为 xml 并将其加载到 XML 文档中。

XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument();

using (MemoryStream ms = new MemoryStream())
{
   //XmlWriterSettings xmlWSettings = new XmlWriterSettings();

   //xmlWSettings.ConformanceLevel = ConformanceLevel.Auto;
   using (XmlWriter xmlW = XmlWriter.Create(ms))
   {
      xmlW.WriteStartDocument();
      dsContract.WriteXmlSchema(xmlW);
      xmlW.WriteEndDocument();
      xmlW.Close();
      using (XmlReader xmlR = XmlReader.Create(ms))
      {
         contractHistoryXMLSchemaDoc.Load(xmlR);
      }
   }
}

但我收到错误 - “根元素丢失”。

有什么想法吗?

更新

当我执行 xmlR.ReadInnerXML() 时,它是空的。有谁知道为什么吗?

NLV

最佳答案

关于原始代码的一些事情:

  • 您不需要调用写入开始和结束文档方法:DataSet.WriteXmlSchema生成完整、格式良好的 xsd。
  • 编写架构后,流位于其末尾,因此当您调用 XmlDocument.Load 时,XmlReader 无需读取任何内容。

所以最主要的是您需要使用Seek 重置MemoryStream 的位置。您还可以大大简化整个方法:您不需要 XmlReader 或 writer。以下对我有用:

XmlDocument xd = new XmlDocument();
using(MemoryStream ms = new MemoryStream())  
{
    dsContract.WriteXmlSchema(ms);

    // Reset the position to the start of the stream
    ms.Seek(0, SeekOrigin.Begin);
    xd.Load(ms);
}

关于c# - 数据集 -> XML 文档 - 将数据集加载到 XML 文档中 - C#.Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667063/

相关文章:

python - 我正在尝试使用 numpy 模块创建和实现一个在 Python 中识别数据集中异常值的函数,不断获取 'ValueError'

c# - 以 .net 3.5 形式显示缩略图工具栏时出现问题

c# - Sitecore "random"对象引用未设置为对象的实例

javascript - 正在加载文件名中包含今天日期的 XML 文件...如果不存在具有今天日期的文件,则需要回退到旧文件

java - STAX 解析 - 移动 xml 文件

PHP - 使用 unicode 正则表达式的 XSD 模式验证错误

hadoop - oozie数据集时区偏移不起作用

c# - 从表达式中获取负数

c# - 将值从 javascript 传递到代码隐藏

c# - 使用 linq 使用唯一的列名列表在 DataSet 中查找 DataTable(Name)