我正在尝试将 xml 的单个“行”加载到列表框索引中。
<?xml version="1.0" encoding="utf-8"?>
<!--User | 4/16/2013 @ 10:05 PM-->
<ContactBook>
<Contact>
<Name>
<Name>personName</Name>
</Name>
<City>
<City>testCity</City>
</City>
<State>
<State>testState</State>
</State>
<Phone>
<Phone>testPhone</Phone>
</Phone>
</Contact>
</ContactBook>
所以我想让姓名、城市、州和电话显示在列表框中的一行上,然后让下一个联系人出现在下一个列表框行中。
我还想知道是否有人有一些好的网站,可以显示有关如何更新 XML 文件而不是覆盖它们的教程。
/由于评论中的问题进行编辑/
我真的不知道从哪里开始。我的 xml 文件是从对话框(类中的几个文本框)写入的, this.Tag 更新列表框,并保存到 xml 文件。但是,如果保存第二组联系信息,它将覆盖第一组联系信息,而不是附加它。
/编辑/
感谢 LexRoy,我有了更多的了解,但是,我仍然挂断了。
private void updateXml_Click(object sender, EventArgs e)
{
var xDoc = XDocument.Load(book);
var listBoxItems = xDoc.Elements("Contact");
listBox1.Items.Add(listBoxItems);
}
其中 book 是代表我的 xml 文件路径的变量,listBox1 是显而易见的。 不幸的是,单击按钮时,第一行获取此值:
System.Xml.Linq.XContainer+<GetElements>d_11
现在数据源已被声明,我得到一个抛出的异常:
最佳答案
您可以使用XDocument
您可以在其中表示 XML 文档并迭代其每个项目。对于您的示例,
您可以为联系人
创建一个对象,其中您将拥有名称
、城市
、州
、和电话
属性。
var xDoc = XDocument.Load("ContactBook.xml");
var listBoxItems = xDoc.Elements("Contact"); //This will be a list of IEnumerable<XElement> child elements of Contact xml tag
然后您可以通过代码操纵这些东西。
编辑:
listBox1.DataSource = listBoxItems.ToList();
listBox1.DisplayMember = "Value";
listBox1.ValueMember = "Value";
关于c# - 如何将 XML "row"加载到列表框 C# 的索引中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050422/