2

C# と XML のヘルプが必要です。

私は Web アプリケーションを構築しており、特定の部門 (Dep1 の男性数) で性別が男性の人の数に関する情報を提示する必要があります。

これは私のXMLファイルです:

<company>
  <department>
    <departmentname>Dep 1</departmentname>
    <people>
      <person>
        <name>Sean</name>
        <date>2013-10-10</date>
        <gender>male</gender>
        <age>40</age>
      </person>
      <person>
        <name>John</name>
        <date>2013-10-18</date>
        <gender>male</gender>
        <age>45</age>
      </person>
      <person>
        <name>Linda</name>
        <date>2013-09-10</date>
        <gender>female</gender>
        <age>42</age>
      </person>
      <person>
        <name>Bob</name>
        <date>2013-10-01</date>
        <gender>male</gender>
        <age>35</age>
      </person>
    </people>
  </department>
  <department>
    <departmentname>Dep 2</departmentname>
    <people>
      <person>
        <name>Art</name>
        <date>2013-09-10</date>
        <gender>male</gender>
        <age>38</age>
      </person>
      <person>
        <name>Christina</name>
        <date>2013-10-20</date>
        <gender>female</gender>
        <age>45</age>
      </person>
      <person>
        <name>Marie</name>
        <date>2013-09-10</date>
        <gender>female</gender>
        <age>49</age>
      </person>
    </people>
  </department>
</company>

私のコード(未完成で動作していません):

XElement company= XElement.Load(Server.MapPath("myXML.xml"));

XElement department= (from p in company.Elements("department")
                     where p.Element("departmentname").Value == 'Dep 1' && p.Element 
                     ("gender").Value == 'male'
                    select p).Count;  

numberTextBox.Text = department.Element; //???How to write to textbox
4

4 に答える 4

2
var department = (from p in company.Elements("department")
                 where p.Element("departmentname").Value == "Dep 1" && p.Element 
                 ("gender").Value == "male"
                select p).Count();  

XElement を取得するのではなく、取得していますint(これがCount返されます)。を使用varすると、これが推測されます。

そして私のコメントによると:kon-> gender

于 2013-10-31T12:17:32.653 に答える
0

次のコードを使用するだけで、XMLDocument と Xpath だけを試すことができます

        var xpath = "/company/department[departmentname='Dep 1']/people/person[/company/department/people/person/gender='male']/name";
        var xmldoc = new XmlDocument();
        xmldoc.Load("company.xml");
        var result = xmldoc.SelectNodes(xpath);
        if (result != null) Assert.AreEqual(4,result.Count);

お役に立てれば。

于 2013-10-31T13:54:14.090 に答える