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

时间:2011-10-17 10:56:19

标签: c# xml dataset

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

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

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

我希望你能得到我的问题。

2 个答案:

答案 0 :(得分:1)

看看以下代码:

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替换为列中的数据并确保架构正确,则应该有效。

答案 1 :(得分:0)

也许你可以使用:

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