C#如何使用其属性从xml标记(xmlnodelist)读取值?

时间:2018-07-11 21:57:01

标签: c# xml xmlnodelist

您能否帮助我了解如何使用C#的属性获取xml标记的值。 需要:

Code example

<Friend>
   <FName>Patrick</FName>
   <LName>Aston</LName>
   <Age>22</Age>
   <FriendsIdList>
       <FriendId IdType="school">29982252</FriendId>
       <FriendId IdType="athome">2334568</FriendId>
       <FriendId IdType="atcamp">9908787</FriendId>
       <FriendId IdType="studygroup">6588432</FriendId>
   </FriendsIdList>
</Friend>

如何获取标记<FriendId IdType="XXXXX">XXXXXX</FriendId>的值我曾尝试将XMLnodelist用作foreach序列,但未成功。 你有什么建议吗? 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

使用字典尝试xml linq以获得ID

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication51
{

    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";

        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            var results = doc.Descendants("Friend").Select(x => new {
                fName = (string)x.Element("FName"),
                lName = (string)x.Element("LName"),
                age = (int)x.Element("Age"),
                ids = x.Descendants("FriendId")
                   .GroupBy(y => (string)y.Attribute("IdType"), z => (string)z)
                   .ToDictionary(y => y.Key, z => z.FirstOrDefault())
            }).ToList();



        }
    }


}

enter image description here