Mock_Bird
2019-08-07 18:02
采纳率: 0%
浏览 987

C#提取xml中重复的节点的值

我现在需要使用C#提取xml中的数据,我需要提取下面代码中的Points中的两个SegmentPoints中的X和Y的值,并将这四个值分配给变量a、b、c、d,现在我已经提取了xml中的第一个SegmentPoint的X和Y的值,并将它们分配给变量a、b,,我现在不知道如何提取第二个SegmentPoint的X、Y值,因为它和第一个SegmentPoint的名字相同。下面是我的代码,请大神们帮我实现提取第二个SegmentPoint的X、Y值。

XML:


1797
1797



21867
27304


23941
27304




1841
1841



23941
27304


24702
27304




1850
1850



26154
16092


25195
16092




1851
1851



25195
16092


23715
16092



 我目前的C#使用xml的Linq:

 foreach (var ele in elements)
        {
            SegmentModel model = new SegmentModel();
            model.Id = Convert.ToInt32( ele.Element("Id").Value);



            model.X1 = Convert.ToInt32(ele.Element("Points").Element("SegmentPoint").Element("X").Value);
            model.Y1 = Convert.ToInt32(ele.Element("Points").Element("SegmentPoint").Element("Y").Value);
             int a = model.X1;
             int b = model.Y1;



                     }
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2019-08-07 20:44

    xml不完整。但是你可以用Linq的 Distinct() 或者 GroupBy 来去掉重复的值。

    打赏 评论
  • Tiarnach 2019-08-08 08:51

    发XML需要注意下,是markdown语法,要先点 代码片 按钮,然后在出现的两个三点之间放入你的XML


    ele.Element("Points").Elements("SegmentPoint")
    

    获取Points下的所有SegmentPoint结点,然后对此集合进行遍历就可以获取了

    打赏 评论

相关推荐 更多相似问题