我需要将 XML 文件读入字典。
我阅读了一些指南,只是对我不理解的奇怪单词(例如节点、XML 验证等)感到困惑。那么,你能带我过去吗?
我有一个以这种格式编写的 XML 文件:
<database>
<def number="1" name="one"/>
<def number="2" name="two"/>
</database>
如前所述,我想将其存储在字典中。我该怎么做呢?
我需要将 XML 文件读入字典。
我阅读了一些指南,只是对我不理解的奇怪单词(例如节点、XML 验证等)感到困惑。那么,你能带我过去吗?
我有一个以这种格式编写的 XML 文件:
<database>
<def number="1" name="one"/>
<def number="2" name="two"/>
</database>
如前所述,我想将其存储在字典中。我该怎么做呢?
var data = XElement.Parse(xml)
.Elements("def")
.ToDictionary(
el => (int)el.Attribute("number"),
el => (string)el.Attribute("name")
);
这个:
XElement
(从 开始<database>
)<def ...>
元素@number
用作键(解释为 an int
)和@name
值(作为字符串)data
,隐式键入为Dictionary<int,string>
你的问题是基本的,但不是不恰当的。不用担心。我会解释你应该怎么做。
首先你必须加载这个 XML 文件(如果它在磁盘上)。否则不需要这一步
XDocument database = XDocument.Load(pathToYourXmlFile);
到这里,你得到:
<database>
<def number="1" name="one"/>
<def number="2" name="two"/>
</database>
然后你必须得到所有def元素的列表:
List<XElement> defs = database.Elements("def");
到这里,你得到:
<def number="1" name="one"/>
<def number="2" name="two"/>
现在,您应该获取列表的每个项目(defs 中的每个 def):
foreach(XElement def in defs)
{
// Here you have each def <def number="x" name="y" />
int number = def.Attribute("number").value;
string name = def.Attribute("name").value;
}
从每个 def 中提取信息的代码是:
int number = def.Attribute("number").value;
string name = def.Attribute("name").value;
现在您有了自己的号码和姓名,只需将其添加到您的字典中即可。
dictionary.Add(number, name);
希望有帮助。