【问题标题】:Creating XML from a LINQ result从 LINQ 结果创建 XML
【发布时间】:2009-09-28 09:42:59
【问题描述】:

如果我使用 LINQ 从数据库中检索结果,有没有一种方法可以自动生成 XML?

例如:

DataClasses1DataContext db = new DataClasses1DataContext(C_CONN_STRING);
var q = from stock in db.GetTable<Stock>()
        where stock.Group == 1
        select stock;

foreach(Stock s in q)
{
     //automatically create XML document here?
}

对不起,如果这是一个非常基本的问题,任何帮助表示赞赏

【问题讨论】:

    标签: xml linq


    【解决方案1】:

    我们不知道您的 Stock 对象的确切内容,也不知道您要生成的 XML 的形式,所以这只是一个疯狂的猜测......

        DataClasses1DataContext db = new DataClasses1DataContext(C_CONN_STRING);
        var q = from stock in db.GetTable<Stock>()
                where stock.Group == 1
                select stock;
    
        XDocument doc = new XDocument();
        foreach(Stock s in q)
        {
            doc.Add(
                new XElement("Stock"
                    new XAttribute("Group", stock.Group),
                    new XAttribute("Product", stock.Product),
                    new XAttribute("Quantity", stock.Quantity)));
        }
    

    【讨论】:

      【解决方案2】:

      您可以使用 VB 来做到这一点,因为它支持代码中的 XML 文字。

      如果你必须使用 C#,你可以使用 XElement(示例取自 C# in Depth):

      var users = new XElement("users",
          from user in SampleData.AllUsers
          select new XElement("user",
              new XAttribute("name", user.Name),
              new XAttribute("type", user.UserType))
      );
      

      这会产生这样的结果:

      <users>
          <user name="Tim Trotter" type="Tester" />
          <user name="Tara Tutu" type="Tester" />
          <user name="Deborah Denton" type="Developer" />
          <user name="Darren Dahlia" type="Developer" />
          <user name="Mary Malcop" type="Manager" />
          <user name="Colin Carton" type="Customer" />
      </users>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        相关资源
        最近更新 更多