gpt4 book ai didi

c# - 如何将 XML "row"加载到列表框 C# 的索引中

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:23 24 4
gpt4 key购买 nike

我正在尝试将 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 文件。但是,如果保存了第二组联系信息,它会覆盖第一组,而不是附加它。

/编辑/

多亏了 LexeRoy,我有了更多的理解,但是,我仍然挂断了电话。

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 

现在已经声明了数据源,我得到了一个抛出的异常: error

最佳答案

您可以使用 XDocument您可以在其中表示您的 XML 文档并迭代其中的每个项目。对于您的示例,

您可以为 Contact 创建一个对象,其中您将拥有 NameCityState、和 Phone 属性。

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com