XLINQ:如何使用XLINQ排除XML中的节点

时间:2010-02-17 06:37:51

标签: linq-to-xml

您好我有以下xml

<students>
  <student>
    <id>12</id>
    <name>Mohsan</name>
  </student>
  <student>
    <id>2</id>
    <name>Ali</name>
    <address>
      <country>Pakistan</country>
    </address>
    <address>
      <country>India</country>
    </address>
    <parent>
      <id>12</id>
      <address>
        <country>Pakistan</country>
      </address>
    </parent>
  </student>
  <student>
    <id>3</id>
    <name>Azhar</name>
  </student>
</students>

我只想获得学生的地址。不是其父母的地址。我使用了这个查询

var stds = from std in doc.Descendants("student")
                select new
                    {
                        ID = std.Element("id").Value,
                        Name = std.Element("name").Value,
                        Address = from addr in std.Descendants("address")
                                    select addr.Element("country").Value
                    };

但是这个查询也返回了我父母的地址。我不想要的。请注意,学生可以拥有多个地址。请告诉我如何在检索时排除父地址。

1 个答案:

答案 0 :(得分:1)

使用std.Elements("address")代替std.Descendants("address")