我需要帮助。我试图找出一种方法来阅读像这样的支架:
<group id = "56">
<name>Counter</name>
</group>
&#13;
在代码中,有多个地方有相同的模式回来,我想得到所有的组ID号及其名称。
这是我的代码:
XDocument doc = XDocument.Parse(_XmlFile);
var results = doc.Descendants("group").Select(x => new
{
id = (int)x.Attribute("id"),
name = x.Attribute("name").Value,
}).ToList();
Console.WriteLine(results);
由于
答案 0 :(得分:1)
您的代码看起来很不错,但name
是一个元素,而不是一个属性,所以它应该是
XDocument doc = XDocument.Parse(_XmlFile);
var results = doc.Descendants("group").Select(x => new
{
id = (int)x.Attribute("id"),
name = (string)x.Element("name"),
}).ToList();
foreach (var x in results)
Console.WriteLine("id: {0} name: {1}", x.id, x.name);
答案 1 :(得分:0)
使用GetElementsByTagName方法。
以下是使用示例解释它的微软文章。 https://msdn.microsoft.com/en-us/library/dc0c9ekk(v=vs.110).aspx
答案 2 :(得分:0)
“名称”不是属性,而是子节点。解决方案是这样的:
XDocument doc = XDocument.Parse(_XmlFile);
var results = doc.Descendants("group").Select(x => new
{
id = int.Parse(x.Attribute("id").Value),
name = x.Descendants("name").First().Value
}).ToList();