C# 数据集->XML文档-将数据集加载到XML文档中-C.Net
我试图将数据集读取为xml,并将其加载到xml文档中C# 数据集->XML文档-将数据集加载到XML文档中-C.Net,c#,xml,dataset,C#,Xml,Dataset,我试图将数据集读取为xml,并将其加载到xml文档中 XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument(); using (MemoryStream ms = new MemoryStream()) { //XmlWriterSettings xmlWSettings = new XmlWriterSettings(); //xmlWSettings.ConformanceLevel = ConformanceLe
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关于原始代码的一些事情: 您不需要调用write start和end document方法:生成完整、格式良好的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);
}
关于原始代码的一些事情: 您不需要调用write start和end document方法:生成完整、格式良好的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);
}
您真正需要做的就是调用contractHistoryXMLSchemaDoc.Savems。这将把xml放入MemoryStream
XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
contractHistoryXMLSchemaDoc.Save(ms);
ms.Flush();
}
您真正需要做的就是调用contractHistoryXMLSchemaDoc.Savems。这将把xml放入MemoryStream
XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
contractHistoryXMLSchemaDoc.Save(ms);
ms.Flush();
}
给你。
如果根据变量的命名约定,而不是您所问的问题(似乎改变了…),您需要将数据集的XML scema加载到使用模式命名的XML文档中,下面是将数据集的模式加载到XMLDocument中的代码
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);
}
}
}
我希望数据集的模式位于单独的XML文档中NLV 2010年4月19日12:01 答复:
XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXmlSchema(ms);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLSchemaDoc.Load(ms);
}
XmlDocument contractHistoryXMLDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXml(ms,XmlWriteMode.IgnoreSchema);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLDoc.Load(ms);
}
如果您想了解如何将数据集表数据加载到XML文档中,请注意,我从XMLDocument变量名中删除了单词Schema
你的问题:
对不起,我不明白你的意思。我需要将该数据集的xml转换为xml文档NLV 2010年4月19日11:56 答复:
XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXmlSchema(ms);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLSchemaDoc.Load(ms);
}
XmlDocument contractHistoryXMLDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXml(ms,XmlWriteMode.IgnoreSchema);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLDoc.Load(ms);
}
如果您希望将模式和数据集放在单独的文档中,代码在上面。
如果只需要模式或xml文档中的数据,请使用上述与问题相关的代码。
如果希望XML模式和数据都位于同一个XMLDocument中,请使用以下代码
XmlDocument contractHistoryXMLDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXml(ms,XmlWriteMode.WriteSchema);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLDoc.Load(ms);
}
你的问题:
但是我得到了错误根元素丢失。
有什么想法吗?
使现代化
当我执行xmlR.ReadInnerXML时,它是空的。有人知道为什么吗?
NLV
答复:
XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXmlSchema(ms);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLSchemaDoc.Load(ms);
}
XmlDocument contractHistoryXMLDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXml(ms,XmlWriteMode.IgnoreSchema);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLDoc.Load(ms);
}
您认为代码的工作方式存在潜在问题,这意味着它并没有真正创建XMLSchema和XmlData dsContract,这就是为什么您会看到一个空白的XMLDocument
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);
}
}
}
这可能会帮助你充分解释你的愿望,然后不要用被误解的部分句子回答每个人,你必须用更多的部分句子来回答。给你。
如果根据变量的命名约定,而不是您所问的问题(似乎改变了…),您需要将数据集的XML scema加载到使用模式命名的XML文档中,下面是将数据集的模式加载到XMLDocument中的代码
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);
}
}
}
我希望数据集的模式位于单独的XML文档中NLV 2010年4月19日12:01 答复:
XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXmlSchema(ms);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLSchemaDoc.Load(ms);
}
XmlDocument contractHistoryXMLDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXml(ms,XmlWriteMode.IgnoreSchema);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLDoc.Load(ms);
}
如果您想了解如何将数据集表数据加载到XML文档中,请注意,我从XMLDocument变量名中删除了单词Schema
你的问题:
对不起,我不明白你的意思。我需要将该数据集的xml转换为xml文档NLV 2010年4月19日11:56 答复:
XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXmlSchema(ms);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLSchemaDoc.Load(ms);
}
XmlDocument contractHistoryXMLDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXml(ms,XmlWriteMode.IgnoreSchema);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLDoc.Load(ms);
}
如果您希望将模式和数据集放在单独的文档中,代码在上面。
如果只需要模式或xml文档中的数据,请使用上述与问题相关的代码。
如果希望XML模式和数据都位于同一个XMLDocument中,请使用以下代码
XmlDocument contractHistoryXMLDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXml(ms,XmlWriteMode.WriteSchema);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLDoc.Load(ms);
}
你的问题:
但是我得到了错误根元素丢失。
有什么想法吗?
使现代化
当我执行xmlR.ReadInnerXML时,它是空的。有人知道为什么吗?
NLV
答复:
XmlDocument contractHistoryXMLSchemaDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXmlSchema(ms);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLSchemaDoc.Load(ms);
}
XmlDocument contractHistoryXMLDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
dsContract.WriteXml(ms,XmlWriteMode.IgnoreSchema);
ms.Seek(0, SeekOrigin.Begin);
contractHistoryXMLDoc.Load(ms);
}
您认为代码的工作方式存在潜在问题,这意味着它并没有真正创建XMLSchema和XmlData dsContract,这就是为什么您会看到一个空白的XMLDocument
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);
}
}
}
这可能有助于您充分解释您的愿望,然后不要使用被误解的部分句子回复每个人,您必须继续使用更多的部分句子进行回复。您的XML文档是什么样子的?对不起,我不明白您的意思。我需要将该数据集的xml转换成xml文档。您的xml文档是什么样子的?对不起,我不明白。我要去拿x
将该数据集的模式转换为xml文档。我希望数据集的模式在一个单独的xml文档中。我希望数据集的模式在一个单独的xml文档中。我想我的问题标题把您弄糊涂了。我得到了数据集。我想把它加载到一个xml文档中,我想我的题目把你弄糊涂了。我得到了数据集。我想把它加载到一个xml文档中。