如何查询位于“布达佩斯”的Ara的数据?

时间:2011-10-17 14:52:34

标签: linq linq-to-xml

<?xml version="1.0" encoding="utf-8" ?>
<OnlineRadios>
  <Area Location="Budapest">
    <Radio>
      <Name>
        NeoFM
      </Name>
      <Előadó>
        Balage
      </Előadó>
    </Radio>
    <Radio>
      <Name>
        NeoFM
      </Name>
      <Előadó>
        Balage
      </Előadó>
    </Radio>
    <Radio>
      <Name>
        NeoFM
      </Name>
      <Előadó>
        Balage
      </Előadó>
    </Radio>
  </Area>
  <Area Location="Kecskemét">
    <Radio>
      <Name>
        NeoFM
      </Name>
      <Előadó>
        Balage
      </Előadó>
    </Radio>
    <Radio>
      <Name>
        NeoFM
      </Name>
      <Előadó>
        Balage
      </Előadó>
    </Radio>
    <Radio>
      <Name>
        NeoFM
      </Name>
      <Előadó>
        Balage
      </Előadó>
    </Radio>
  </Area>
</OnlineRadios>

我想查询所有与查找位置相同位置的无线电地点。所以我给出了条件,然后我必须填写结果。 我试过了

var x = (from a in XmlFile2.Elements("Area")
          where a.Attribute("Location").Value == "Budapest"
          select a;

但它不起作用。 还是不够。如果你知道请帮助我。

1 个答案:

答案 0 :(得分:1)

Elements()只获取当前节点的直接子节点(而不是Descendants()),在这种情况下,您想要使用根节点限定 - 这有效:

var x =   from a in XmlFile2.Root.Elements("Area")
          where a.Attribute("Location").Value == "Budapest"
          select a;