<Info>
    <ID>109001</ID>
    <Field>aa</Field>
  </Info>
  <Info>
    <ID>109001</ID>
    <Field>bbb</Field>
  </Info>
  <Info>
    <ID>109002</ID>
    <Field>ccc</Field>
  </Info>
<Info>
    <ID>109003</ID>
    <Field>ccc</Field>
  </Info>
我想查询ID,其结果是:
109001
109002
109003
如果重复的ID就取一个就行用Linq to xml 怎么查?或是用其他方法怎么查呢?

解决方案 »

  1.   


    List<string> result= new List<string>();
    XDocument doc=XDocument.Load("xml");
    var query = from SID in doc.Descendants("ID") select SID.Value;
    foreach (var item in query)
    {
     result.Add(item);
    }          
                 
      

  2.   

    Distinct方法是结果去重的吧Group By方法应该也可以
      

  3.   

                string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?><root><Info>
        <ID>109001</ID>
        <Field>aa</Field>
      </Info>
      <Info>
        <ID>109001</ID>
        <Field>bbb</Field>
      </Info>
      <Info>
        <ID>109002</ID>
        <Field>ccc</Field>
      </Info>
    <Info>
        <ID>109003</ID>
        <Field>ccc</Field>
      </Info></root>";
                var obj = ((XDocument.Parse(xml).Descendants("Info")).SelectMany(s => s.Elements("ID"))).Distinct();
                           string t = "";
                foreach (var s in obj)
                {
                    t += s + "<br />";
                }
                Response.Write(t);
      

  4.   


    XmlDocument doc = new XmlDocument();
    doc.LoadXml("");
    foreach (XmlNode node in doc.GetElementsByTagName("id"))
    Console.WriteLine(node.InnerXml);
      

  5.   

    使用Xpath语法,参考下面链接
    http://www.w3school.com.cn/xpath/xpath_syntax.asp
      

  6.   

    都不行!
    我也得这个Linq没有帮我把重复的ID的值去掉!
     var query = (from ID in xelem.Descendants("Info")  select ID.Element("ID")).Distinct() ;
      

  7.   


    groub by 的方法怎么实现
      

  8.   

    很多种方法都可以实现吧,linq,xpath,读入dataset在里面判断等等
      

  9.   

    已经完成!
    1、查询xml数据存到IList<T>里面。
       IList<T> xcList =new List<T>
    2、用Linq查询
        var query = (from ID xcList select ID.ID).Distinct() ;
    这样查询就能过滤重复数据了!