我需要创建一个应该如下所示的 xml 文件。
<Event id="Date - Event Name - Event Type">
<DogNumber id="dog id number">
<dogName id-"dog id number">dog name</dogName>
<dogBreed>dog breed</dogBreed>
</DogNumber>
</Event>
然后它会针对另一个事件再次重复,除了元素的不同值和属性。
<Event id="Date - Event Name - Event Type">
<DogNumber id="dog id number">
<dogName id-"dog id number">dog name</dogName>
<dogBreed>dog breed</dogBreed>
</DogNumber>
</Event>
我是使用 C# 创建 XML 文件的新手,并且无法正确地将属性添加到元素并获得与上面所示相同的父节点和子节点。我需要能够从我的 C# 应用程序查看此文件,并能够根据特定事件读取上面列出的所有值,然后读取每个事件中的特定狗。选择哪个事件和选择哪只狗的标准可能取决于用户在 ComboBox 中的输入。我的计划是使用 getElementById
方法。然而,我见过如此多不同的方法来做到这一点,以至于我无法决定什么是最好和最有效的方法。
最佳答案
我认为读取/写入该 xml 文件的最简单方法是使用 XMLSerializer。这种方法还使您能够轻松绑定(bind)到数据(如果您将 WPF 用于 UI)
创建可序列化类:
public class Event
{
[XmlAttribute]
public string id { get; set; }
[XmlElement]
public DogNumber DogNumber { get; set; }
}
public class DogNumber
{
[XmlAttribute]
public string id { get; set; }
[XmlElement]
public dogName dogName { get; set; }
[XmlElement]
public string dogBreed { get; set; }
}
public class dogName
{
[XmlAttribute]
public string id { get; set; }
[XmlTextAttribute]
public string value { get; set; }
}
然后使用 XmlSerializer 反序列化(例如使用文件):
Stream input = File.OpenRead("C:\\test.xml");
XmlSerializer serialier = new XmlSerializer(typeof(Event));
Event newevent = serialier.Deserialize(input) as Event;
input.Close();
关于c# - 将 XML 数据读入 C# 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796730/