解析xdocument并绑定到网格
本文关键字:网格 绑定 xdocument 解析 | 更新日期: 2023-09-27 18:07:57
我有时间绑定一个xdocument数据到gridview。我需要帮助这个想法,我尝试了各种方法做同样的,但都是徒劳的.....下面是xml字符串
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="EmpId" /> <variable name="EmpName" /> </head>
<results>
<result> <binding name="EmpId">
<uri>http://www.brightstardb.com/categories/1</uri> </binding>
<binding name="EmpName">
<uri>http://www.brightstardb.com/categories/Smith</uri> </binding>
</result> <result> </results> </sparql>
我需要将其绑定到dotnet c# win应用程序中的gridview,下面是我采取的一种方法,但无法成功绑定.......请帮助。
var result = XDocument.Load(client.ExecuteQuery(storeName, query));
var doc = XDocument.Parse(result.ToString());
IEnumerable<Prescriber> products = from x in doc.Descendants("result")
select new Prescriber()
{
EmpId= x.Element("EmpId").Value,
EmpName= x.Element("EmpName").Value
};
我有一个想法,你想在数据网格的两列,"EmpId"answers"EmpName"。对于给定的XML,我期望有一行,第一列是= "http://www.brightstardb.com/categories/1",第二列是= "http://www.brightstardb.com/categories/Smith"
如果为真,下面是示例代码:
var doc = XDocument.Load("XMLFile1.xml");
XNamespace ns = "http://www.w3.org/2005/sparql-results#";
var products = from x in doc.Descendants(ns + "result")
select new Prescriber
{
EmpId = x.Elements(ns + "binding").Single(e => e.Attribute("name").Value == "EmpId").Element(ns + "uri").Value,
EmpName = x.Elements(ns + "binding").Single(e => e.Attribute("name").Value == "EmpName").Element(ns + "uri").Value
};
datagridview.DataSource = products.ToList();
注意以下事项:
如果任何"result" XElement缺少"EmpId"或"EmpName"属性,则示例将失败。
处方类需要真正的属性"设置;} "简单字段不起作用。
由于某种原因,你必须调用。tolist()作为最后一步。T>行不通。
是的,LinqToXML查询有点复杂,如果有时间,请查找MSDN