【问题标题】:XML - From SQL Server to LINQ to XMLXML - 从 SQL Server 到 LINQ 再到 XML
【发布时间】:2012-10-29 18:32:31
【问题描述】:

设置:

我有一些 xml 数据存储在数据库 (SQL Server 2008 R2) 中,这些数据通过存储过程检索并放入 DataTable。 DataTable 有 2 列:一个 DateTime“时间戳”和一个 XML“信息”。

从数据库中提取这些数据后,我想循环遍历每一行并使用 C# 中的 LINQ to XML 对数据进行操作。

public static void ParseDataTable(DataTable dataTable)
{
    for (int r = 0; r < dataTable.Rows.Count; r++)
    {
        // dataTable.Rows[r]["timestamp"].ToString() holds DateTime
        // dataTable.Rows[r]["info"].ToString() holds XML
    }
}

我的问题:

将这些数据放入可以使用 LINQ 的对象中的最简单方法是什么?应该使用什么类型的对象?

此外:

  • 请不要问为什么xml存储在数据库中,或者推荐不同的存储介质。不打算发动一场圣战。
  • 如果 xml 应该以不同的类型返回(例如,CAST([info] AS VARCHAR(MAX))),请告诉我。
  • 我宁愿使用 LINQ 来解析对象,一旦我有它可用,所以请不要推荐其他方法。

提前致谢。

【问题讨论】:

    标签: c# xml linq-to-xml


    【解决方案1】:
    XDocument doc = XDocument.Parse(dataTable.Rows[r]["info"].ToString());
    

    然后你可以linq away

    【讨论】:

    • 这么简单!谢谢你。我没有偶然发现 XDocument.Parse(),这使得这非常简单。另外,链接回 Jon Skeet 的答案——总是好的。 :D
    • 使用XElement.Parse 可能会更好,除非所讨论的 XML 是完整的文档 -- 请参阅 here 和 here。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多