首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析xdocument并绑定到网格

解析xdocument并绑定到网格
EN

Stack Overflow用户
提问于 2013-04-08 20:58:48
回答 1查看 528关注 0票数 0

我有足够的时间将xdocument数据绑定到网格视图。在这个想法上我需要帮助我尝试了各种方法来做同样的事情,但都是徒劳的……下面是xml字符串。

代码语言:javascript
复制
    <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应用程序中的网格视图,下面是我采取的一种方法,但无法成功地使用bind.......Pls帮助。

代码语言:javascript
复制
 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
       };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-09 20:33:09

我有一个想法,您希望在数据网格中有两列,"EmpId“和"EmpName”。对于给定的XML,我希望有一行,第一列= "http://www.brightstardb.com/categories/1“,第二列= "http://www.brightstardb.com/categories/Smith”。

如果是真的,下面是一个示例代码:

代码语言:javascript
复制
    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();

注意以下事项:

如果任何“XElement”结果缺少"EmpId“或"EmpName”属性,则Sample将失败。

Prescriber类需要真实的属性“public string EmpId { get;set;}”简单的字段不起作用。

您必须调用.ToList()作为最后一步,由于某种原因,IEnumerable< T>将不起作用。

是的,LinqToXML查询有点复杂,如果您有时间,可以查找MSDN。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15879703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档