[英]Dictionary from XML based on parent and child nodes
我用WPF編寫了一個應用程序,並且具有以下XML:
<NewDataSet>
<EYE>
<DAD>Blue</DAD>
<MOM>Brown</MOM>
</EYE>
<HAIR>
<DAD>Black</DAD>
<MOM>Brown</MOM>
</HAIR>
<SKIN>
<DAD>White</DAD>
<MOM>White</MOM>
</SKIN>
</NewDataSet>
我想將XML讀入字典,因此,如果選擇讀取“ DAD”數據,我將得到:
public Dictionary<string, string> values = new Dictionary<string, string>()
{
{"EYE", Blue},
{"HAIR", Black},
{"SKIN", White}
};
有可能嗎?如果可以,我可以給誰做? 任何代碼段都將非常有幫助。
這真的很簡單:
var xd = XDocument.Parse(@"<NewDataSet>
<EYE>
<DAD>Blue</DAD>
<MOM>Brown</MOM>
</EYE>
<HAIR>
<DAD>Black</DAD>
<MOM>Brown</MOM>
</HAIR>
<SKIN>
<DAD>White</DAD>
<MOM>White</MOM>
</SKIN>
</NewDataSet>");
Dictionary<string, string> values =
xd
.Root
.Elements()
.ToDictionary(
xe => xe.Name.LocalName,
xe => xe.Element("DAD").Value);
使用xml linq:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string xml =
"<NewDataSet>" +
"<EYE>" +
"<DAD>Blue</DAD>" +
"<MOM>Brown</MOM>" +
"</EYE>" +
"<HAIR>" +
"<DAD>Black</DAD>" +
"<MOM>Brown</MOM>" +
"</HAIR>" +
"<SKIN>" +
"<DAD>White</DAD>" +
"<MOM>White</MOM>" +
"</SKIN>" +
"</NewDataSet>";
XElement dataset = XElement.Parse(xml);
Dictionary<string, string> dadDict = dataset.Elements()
.GroupBy(x => x.Name.LocalName, y => (string)y.Element("DAD"))
.ToDictionary(x => x.Key, y => y.FirstOrDefault());
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.