1

誰か助けてください。XML と xElement は初めてです。年 = 2013 の男性の数を取得するにはどうすればよいですか? 結果は 300 になるはずです。

私はこのXMLを持っています:

<company>
  <department>
    <departmentname>Dep 1</departmentname>
    <year id = "2012">
      <men>200</men>
      <women>1000</women>
    </year>
    <year id = "2013">
      <men>300</men>
      <women>400</women>
    </year>
  </department>
</company>

私はこのコードを持っています(動作していません):

XElement company = XElement.Load(Server.MapPath(myXML.xml));
var men = (from a in company.Elements("department").Elements("year")
           where (string)a.Attribute("id").Value == "2013"
           select (string)(a.Element("men"))).ToList<string>();
4

4 に答える 4

0

あなたがすべての部門からそれを望んでいると仮定します

int mens=company.Descendants("year")
                .Where(x=>x.Attribute("id").Value=="2013")
                .Sum(x=>int.Parse(x.Element("men").Value));

あなたのクエリは

int men = (from a in company.Elements("department").Elements("year")
           where a.Attribute("id").Value == "2013"
           select int.Parse(a.Element("men").Value)).Sum();
于 2013-11-08T17:29:28.090 に答える
0

わかりました。私はこれを使用しましたが、うまくいきました。ご協力ありがとうございます。

 XElement com = (from p in company.Elements("department")
                                    where (string)p.Element("departmentname").Value == "Dep 1"
                                    select p).First();



    var men= (from a in com.Elements("year")
                              where (string)a.Attribute("id") == "2013"
                              select (string)(a.Element("men"))).ToList<string>();
于 2013-11-08T19:23:39.093 に答える