您能否帮助我了解如何使用C#的属性获取xml标记的值。 需要:
<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序列,但未成功。
你有什么建议吗?
感谢您的帮助。
答案 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();
}
}
}