C# 如何将字符串值解析为xml并将其绑定到数据集
我试图从数据库中检索5列,其中一列是XML类型。返回数据集时,它被视为字符串。我需要将这些值提取为xml并绑定到另一个数据集 例如:如果我的查询向dataset返回5列,则其中一列是xml。我需要提取这些值并将其作为xml存储到另一个数据集 我尝试使用C# 如何将字符串值解析为xml并将其绑定到数据集,c#,xml,dataset,C#,Xml,Dataset,我试图从数据库中检索5列,其中一列是XML类型。返回数据集时,它被视为字符串。我需要将这些值提取为xml并绑定到另一个数据集 例如:如果我的查询向dataset返回5列,则其中一列是xml。我需要提取这些值并将其作为xml存储到另一个数据集 我尝试使用dstDataset.Tables[0][3].toString()它以字符串形式返回整个xml。现在我需要解析为xml并绑定到另一个数据集 我希望你能理解我的问题 也许您可以使用: using System.Xml.Linq; (...) XDo
dstDataset.Tables[0][3].toString()代码>它以字符串形式返回整个xml。现在我需要解析为xml并绑定到另一个数据集
我希望你能理解我的问题 也许您可以使用:
using System.Xml.Linq;
(...)
XDocument xmlXDoc = XDocument.Parse(dstDataset.Tables[0][3].toString());
然后,您可以通过以下方式获取XML:
xmlXDoc.ToString()
或者,如果您希望它不带格式(缩进XML):
关于LINQ to XML的更多信息:也许您可以使用:
using System.Xml.Linq;
(...)
XDocument xmlXDoc = XDocument.Parse(dstDataset.Tables[0][3].toString());
然后,您可以通过以下方式获取XML:
xmlXDoc.ToString()
或者,如果您希望它不带格式(缩进XML):
有关LINQ to XML的更多信息:请查看以下代码:
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable("table1");
dataTable.Columns.Add("col1", typeof(string));
dataSet.Tables.Add(dataTable);
string xmlData = "<XmlDS><table1><col1>Value1</col1></table1><table1><col1>Value2</col1></table1></XmlDS>";
System.IO.StringReader xmlSR = new System.IO.StringReader(xmlData);
dataSet.ReadXml(xmlSR, XmlReadMode.IgnoreSchema);
DataSet数据集=新数据集();
DataTable=新数据表(“表1”);
dataTable.Columns.Add(“col1”,typeof(string));
dataSet.Tables.Add(dataTable);
字符串xmlData=“Value1Value2”;
System.IO.StringReader xmlSR=新的System.IO.StringReader(xmlData);
ReadXml(xmlSR,XmlReadMode.IgnoreSchema);
如果将xmlData替换为列中的数据,并确保架构正确,则应该可以执行此操作。查看以下代码:
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable("table1");
dataTable.Columns.Add("col1", typeof(string));
dataSet.Tables.Add(dataTable);
string xmlData = "<XmlDS><table1><col1>Value1</col1></table1><table1><col1>Value2</col1></table1></XmlDS>";
System.IO.StringReader xmlSR = new System.IO.StringReader(xmlData);
dataSet.ReadXml(xmlSR, XmlReadMode.IgnoreSchema);
DataSet数据集=新数据集();
DataTable=新数据表(“表1”);
dataTable.Columns.Add(“col1”,typeof(string));
dataSet.Tables.Add(dataTable);
字符串xmlData=“Value1Value2”;
System.IO.StringReader xmlSR=新的System.IO.StringReader(xmlData);
ReadXml(xmlSR,XmlReadMode.IgnoreSchema);
如果用列中的数据替换xmlData,并确保模式正确,这应该会起作用。因此,为了确保我们正确理解:您想提取一些XML,并将整个XML集“按原样”插入另一个数据集中?(也就是说,不需要从XML中提取单独的数据片段?)因此,为了确保我们正确理解:您想提取一些XML,并“按原样”将整个XML集插入另一个数据集中吗?(即,不需要从XML中提取单个数据片段?)XDocument xmlXDoc=XDocument.Parse(dstSection.Tables[0][3].toString());这一行给了我错误。正在说明无法对[]类型为“System.Data.DataListRange”的表达式应用索引。。。假设这会给您一个字符串,正如您在问题中所写:dstDataset.Tables[0][3].toString()如果字符串包含有效的XML,则XDocument.Parse()
应该能够解析该字符串。您可以先尝试将其定义为变量:String myXml=dstDataset.Tables[0][3].toString()代码>,然后将其作为参数传递,以确保确实从DataTable.XDocument xmlXDoc=XDocument.Parse(dstSection.Tables[0][3].toString()中获得了预期的结果;这一行给了我错误。正在说明无法对[]类型为“System.Data.DataListRange”的表达式应用索引。。。假设这会给您一个字符串,正如您在问题中所写:dstDataset.Tables[0][3].toString()如果字符串包含有效的XML,则XDocument.Parse()
应该能够解析该字符串。您可以先尝试将其定义为变量:String myXml=dstDataset.Tables[0][3].toString()代码>,然后将其作为参数传递,以确保确实从DataTable中获得了预期的结果。