好的,我现在使用文档方法而不是 XmlWriter 来编写 XML。
我已经用 编写了我的 XML 文件。
userNode = xmlDoc.CreateElement("user");
attribute = xmlDoc.CreateAttribute("age");
attribute.Value = "39";
userNode.Attributes.Append(attribute);
userNode.InnerText = "Jane Doe";
rootNode.AppendChild(userNode);
但问题又是如何读回这些设置。
<users>
<user name="John Doe" age="42" />
<user name="Jane Doe" age="39" />
</users>
文件的格式我可以弄清楚如何读取age变量,但无法获取 name 属性。我的 XML 文件与上面略有不同,但差别不大
逐个元素编写 XML 文件可能非常耗时,而且容易出错。
我建议使用 XML Serializer 来完成此类工作。
如果您不关心格式 - 并且要求只是能够序列化为 XML 并稍后反序列化,则代码可以简单如下:
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
string filepath = @"c:\temp\users.xml";
var usersToStore = new List<User>
{
new User { Name = "John Doe", Age = 42 },
new User { Name = "Jane Doe", Age = 29 }
};
using (FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate))
{
XmlSerializer serializer = new XmlSerializer(usersToStore.GetType());
serializer.Serialize(fs, usersToStore);
}
var retrievedUsers = new List<User>();
using (FileStream fs2 = new FileStream(filepath, FileMode.Open))
{
XmlSerializer serializer = new XmlSerializer(usersToStore.GetType());
retrievedUsers = serializer.Deserialize(fs2) as List<User>;
}
微软提供了一些很好的例子.Net 文档 - XML 序列化简介 https://learn.microsoft.com/en-us/dotnet/framework/serialization/introducing-xml-serialization
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)