如何将字符串值解析为xml并将其绑定到数据集

本文关键字:绑定 数据集 xml 字符串 | 更新日期: 2023-09-27 18:11:22

我试图从数据库检索5列,在一个是XML类型。当返回到数据集时,它被视为字符串。我需要将这些值提取为XML并绑定到另一个数据集。

例如:如果我的查询返回5列数据集,其中一列是xml。我需要提取这些值并将其作为XML存储到另一个数据集。

我尝试使用dstDataset.Tables[0][3].toString();,它返回整个xml作为字符串。现在我需要将其解析为XML并绑定到另一个数据集。

我希望你们明白我的问题。

如何将字符串值解析为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);

如果将xmlData替换为列中的数据,并确保模式正确,则应该可以正常工作。

也许你可以使用:

using System.Xml.Linq;
(...)
XDocument xmlXDoc = XDocument.Parse(dstDataset.Tables[0][3].toString());

然后你可以用:

得到XML
xmlXDoc.ToString()

或者,如果您喜欢不格式化(缩进XML):

xmlXDoc.ToString(SaveOptions.DisableFormatting)

关于LINQ to XML的更多信息:http://msdn.microsoft.com/en-us/library/bb387044.aspx