它应该很简单,但我在将简单的xml文件读入字符串列表时遇到了麻烦。示例xml文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<directorylist>
<dir>c:\TEST1\</dir>
<dir>c:\TEST2\</dir>
</directorylist>
我想读一个LIst。你能推荐最好的读/写方式吗?
日Thnx
答案 0 :(得分:6)
using System.Xml.Linq;
var myList = from dir in myDocument.Descendants("dir")
select dir;
这将为您提供XElement对象的列表。如果需要字符串,请使用select dir.Value;
答案 1 :(得分:4)
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。
答案 2 :(得分:2)
要提取字符串,您可以执行以下操作:
List<string> dirs = XDocument.Load("yourfile.xml")
.Root.Elements("dir")
.Select(element => element.Value).ToList();
要将字符串写入新的XML文件,您可以执行以下操作:
string[] dirs = new[] {
"c:\\TEST1\\",
"c:\\TEST2\\"
};
new XDocument(
new XElement("directorylist",
dirs.Select(dir => new XElement("dir", dir)))
).Save("yourfile.xml");
答案 3 :(得分:1)
尝试使用LINQ to XML,因为它可以为您完成大部分繁重工作(假设您可以针对.NET 3或更高版本。
XElement root = XElement.Load("XMLFile1.xml");
IEnumerable<string> dirs = from el in root.Elements("dir") //was directorylist
select el.Value;