如何使用C#迭代XML文件 [英] How to iterate XML file using C#
本文介绍了如何使用C#迭代XML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有.xml文件,如
I have .xml file like
<?xml version="1.0" encoding="utf-8"?>
<root>
<Folder>
<path>C:\Users\bsushil\Documents\Sharpdesk Desktop\Tinki</path>
<name>Tinkiiiii</name>
</Folder>
<Folder>
<path>C:\Users\bsushil\Documents\Sharpdesk Desktop\Tinki\New folder</path>
<name>New folder</name>
</Folder>
<Folder>
<path>C:\Users\bsushil\Documents\Sharpdesk Desktop\Tinki\New folder (1)</path>
<name>New folder (1)</name>
</Folder>
</root>
我想迭代以获取值路径和名称。我该怎么办?
我尝试了什么:
我我在这个xml中使用。
I want to iterate to get the value path and name. how can I do ?
What I have tried:
I am creatin this xml using.
XElement root = xmlDoc.Element("root");
root.Add(new XElement("Folder",
new XElement("path", item.OriginalPath),
new XElement("name", FolderShortcutName)));
xmlDoc.Save(folderShortcutsFilsXml);
我只能使用
I can iterate only path using
var pathsList = xmlDoc.Descendants("path").Select(x => x.Value);
但我想要路径和名字两者并存储到字典< string,string>
but I want path and name both and store into Dictionary<string, string>
推荐答案
你可以实现这样的目标:
You could achieve your goal like this:
var xmlDocument = new XmlDocument();
xmlDocument.Load("data.xml");
var nodes = xmlDocument.DocumentElement?.SelectNodes("/root/Folder");
if (nodes == null) return;
var dictionary = nodes.Cast<XmlNode>().ToDictionary(node =>
{
var selectSingleNode = node.SelectSingleNode("path");
return selectSingleNode?.InnerText;
}, node =>
{
var singleNode = node.SelectSingleNode("name");
return singleNode?.InnerText;
});
这是我的工作解决方案
Here is my working solution
foreach (XElement xe in xdoc.Descendants("Folder"))
{
dectionary.Add(xe.Element("name").Value, xe.Element("path").Value);
}
这篇关于如何使用C#迭代XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文