如果我使用LINQ从数据库中检索结果,有没有办法可以自动生成XML来生成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?
}
对不起,如果这是一个非常基本的问题,任何帮助表示赞赏
答案 0 :(得分:7)
我们不知道您的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)));
}
答案 1 :(得分:1)
您可以使用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>