【发布时间】:2016-05-26 09:03:16
【问题描述】:
我有一个数据表,其中包含“名称”和“值”两列。
我也有如下所示的 xml,因此我需要将数据表列与 XML 属性连接,然后如果数据表列中存在属性值,则选择 XML 值。 我尝试了许多可能的方法,但没有一个有帮助。 请帮助我如何在 linq 的帮助下实现这一目标!
下面是 XML 代码
<Serverlist>
<server name='Eric' value='9' />
<server name='Donot' value='92' />
</Serverlist>
下面是我用过的代码sn-p
XElement xelement = XElement.Load("path");
var data = from dtt in dt.AsEnumerable()
join xele in xelement.Descendants("server")
on (string)dtt.Field<string>("Name") equals (string)xele.Attribute("name")
select new { name =(String) xele.Attribute("name"), value=(string) xele.Attribute("value")};
foreach(var v in data)
{
Console.WriteLine(v);
}
【问题讨论】:
-
当前输入是什么?电流输出是多少?预期的输出是什么?
-
当前输入附加 xml 和 datatable 两列'名称和值和值与 xml 属性值相同,因此它应该检索数据中的一些值,但当前输出为空。
-
您的代码没有问题。我已经尝试过了,它有效。可能问题出在数据表中的数据上。你能说明你是如何填充数据表的吗?
-
出于测试目的,我只是使用下面的简单代码来创建数据表 DataTable dt=new DataTable(); dt.Columns.Add("名称"); dt.Columns.Add("值");数据行博士 = dt.NewRow();博士[“姓名”] =“埃里克”;博士[“价值”] = 9; dt.Rows.Add(dr);数据行 dr1 = dt.NewRow(); dr1["姓名"] = "KI"; dr1[“价值”] = 9; dt.Rows.Add(dr1);
-
你的代码正在运行,它给了我
{ name = Eric, value = 9 }
标签: c# linq linq-to-xml linq-to-dataset