C# C读/写XML文件

C# C读/写XML文件,c#,xml,linq,C#,Xml,Linq,它应该很简单,但我在将简单的xml文件读入字符串列表时遇到了问题。示例xml文件如下所示: <?xml version="1.0" encoding="utf-8" ?> <directorylist> <dir>c:\TEST1\</dir> <dir>c:\TEST2\</dir> </directorylist> 我想读一份清单。你能推荐最好的读/写方法吗 Thnx 这将为您提供XElem

它应该很简单,但我在将简单的xml文件读入字符串列表时遇到了问题。示例xml文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<directorylist>
    <dir>c:\TEST1\</dir>
    <dir>c:\TEST2\</dir>
</directorylist>
我想读一份清单。你能推荐最好的读/写方法吗

Thnx

这将为您提供XElement对象的列表。如果需要字符串,请使用select dir.Value

string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
                <directorylist>
                    <dir>c:\TEST1\</dir>
                    <dir>c:\TEST2\</dir>
                </directorylist>";

List<String> dirs = XElement.Parse(xml).Elements("dir")
                                       .Select(d => d.Value)
                                       .ToList();

可以使用XElement.Load直接从文件加载xml。

要提取字符串,可以执行以下操作:

List<string> dirs = XDocument.Load("yourfile.xml")
                             .Root.Elements("dir")
                             .Select(element => element.Value).ToList();
string[] dirs = new[] {
    "c:\\TEST1\\",
    "c:\\TEST2\\"
};
new XDocument(
    new XElement("directorylist",
        dirs.Select(dir => new XElement("dir", dir)))
).Save("yourfile.xml");
假设您的目标是.NET3或更高版本,请尝试使用它,因为它可以为您完成大部分繁重的工作

XElement root = XElement.Load("XMLFile1.xml");
IEnumerable<string> dirs = from el in root.Elements("dir")  //was directorylist
             select el.Value;

您应该发布遇到问题的代码。关于堆栈溢出的讨论应该是xml阅读的良好起点:
XElement root = XElement.Load("XMLFile1.xml");
IEnumerable<string> dirs = from el in root.Elements("dir")  //was directorylist
             select el.Value;