为了账号安全,请及时绑定邮箱和手机立即绑定

计算XML元素值

计算XML元素值

C#
慕森卡 2021-04-26 17:57:23
Im试图对Team Element中的值进行计数时,会抛出所有Xml节点,并以以下格式将其填充到“列表”框中:Team1,Count3。Thnx寻求帮助    XmlNodeList nodeList = xmlDoc.GetElementsByTagName("Team");        foreach (XmlNode xNode in nodeList)        {            foreach (var item in xNode)            {                lstRegPartiData.Items.Add(xNode.InnerText + item);               }        }我在这里尝试按值计算元素。这是我的xml模板。           <Participants>              <Participant>                <DateTime>21.04.2018</DateTime>                <FullName>N1</FullName>                <Email>email@gmail.com</Email>                <Phone>123456789</Phone>                <DateOfBirth>00/00/1988</DateOfBirth>                <Team>Team1</Team>                <MainWeapon>T1</MainWeapon>                <MainWeaponChrono>120-130 m\s</MainWeaponChrono>                <WeaponClass>C1</WeaponClass>                <Comment>Hello World</Comment>              </Participant>              <Participant>                <DateTime>21.04.2018</DateTime>                <FullName>N1</FullName>                <Email>email@gmail.com</Email>                <Phone>987654321</Phone>                <DateOfBirth>00/00/1988</DateOfBirth>                <Team>Team1</Team>                <MainWeapon>T1</MainWeapon>                <MainWeaponChrono>120-130 m\s</MainWeaponChrono>                <WeaponClass>C1</WeaponClass>                <Comment>My Comment</Comment>              </Participant>               <Participant>                <DateTime>21.04.2018</DateTime>                <FullName>N1</FullName>                <Email>email@gmail.com</Email>                <Phone>123456789</Phone>                <DateOfBirth>00/00/1988</DateOfBirth>                <Team>Team1</Team>                <MainWeapon>T1</MainWeapon>                <MainWeaponChrono>120-130 m\s</MainWeaponChrono>                <WeaponClass>C1</WeaponClass>                <Comment>Hello World</Comment>              </Participant>            </Participants>
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

如果我们假设您xml是这样的:


<Root>

<Team name="team1">

 <Participants>

              <Participant> 

              </Participant>

              <Participant>


              </Participant>

               <Participant>


              </Participant>

 </Participants>

</Team>

<Team name="team2">

 <Participants>

              <Participant> 

              </Participant> 

              <Participant> 

              </Participant>

 </Participants>

</Team>

</Root>

然后将您的代码更改为:


XDocument xdoc = XDocument.Load(@"your xml path");

var teams = xdoc.Descendants("Team");

foreach (XElement team in teams)

{

    var firstElement = team.Elements();//Get all elements, here is only one element

    var participants = firstElement.Elements();

    int teamCount = participants.Count();

    var teamName = team.FirstAttribute.Value;

    Console.Out.WriteLine("{0} contains {1} member(s)...", teamName, teamCount); 

}

Console.ReadLine();

笔记:


1-每个xml文件中最多只能有一个根元素,这里是<Root>。


2-我认为每个team元素中只有一个元素,所以team.Elements()给您所有元素。


3-我想每个team命名name的元素都有一个属性,所以team.FirstAttribute.Value给您元素的nameof team,否则您应该使用类似team.Attributes("name")get属性的方法。


查看完整回答
反对 回复 2021-05-08
  • 2 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信