4

xml があり、C# LINQ のコードが必要な以下のシナリオで私を助けてください

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <Countries>
    <Country name="India">
      <state id="1"> Tamilnadu</state>
      <state> Karnataka</state>
    </Country>
    <Country name="America">
      <state id="1"> WI</state>
      <state> AW </state>
    </Country>
    <Country name="Africa">
      <state id="1"> Melbourne</state>
      <state> sydney </state>
    </Country>
  </Countries>
</root>

属性 name="India" を取得できるので、LINQ を介して属性 id=1 で状態を取得する方法は? そして、id=1 を与える方法は、「1」のない数値を意味します

4

4 に答える 4

2

を使用している場合は、C#次のようなことができます。

 XDocument document = XDocument.Load("filePath");

 var states = (from state in document.Root.Descendants("state")
               where state.Attribute("id") != null && state.Attribute("id").Value == "1" 
               select state).ToList();
于 2013-08-28T15:22:51.620 に答える
2

次のことができます。

ヌルチェックなしで構造から判断すると、NullReferenceException .

XDocument xml = XDocument.Load("yourFileLocation");

var items = document.Root.Descendants("state")
    .Where(s => s.Attribute("id") != null && s.Attribute("id").Value == "1")
    .ToList();
于 2013-08-28T15:50:25.433 に答える