[英]Reading from multiple XML files and displaying data in a ListBox issue
因此,我一直在从事一个项目,遇到了麻烦。 我需要从XML文件读取员工数据,然后在ListBox中显示该数据。
注意:“ tempFullName”是在脚本开始时分配的空字符串。 永远不会重置为null。
void NewDateItemLoad(object sender, EventArgs e)
{
string path = Application.StartupPath.ToString() + "\\Users";
int fCount = Directory.GetFiles(path, "*.xml", SearchOption.AllDirectories).Length;
for(int i = 0;i<fCount;i++)
{
String[] filePaths = Directory.GetFiles(Application.StartupPath + "\\Users\\");
XmlDocument xmlFile =new XmlDocument();
xmlFile.Load(filePaths[i]);
foreach(XmlNode node in xmlFile.SelectNodes("//Account"))
{
XmlNode nodeFirstName = node.SelectSingleNode("FirstName");
XmlNode nodeLastName = node.SelectSingleNode("LastName");
if(nodeFirstName.Value != "" && nodeLastName.Value != ""){
tempFullName = nodeFirstName.Value + nodeLastName.Value;
}
}
lstWorkers.Items.Add(tempFullName);
lstWorkers.Items.Add("-------------------"); //Temporary Divide
}
}
每个员工都有自己的XML文件,因为我将程序设置为使用该格式,因为在正确理解如何与XML文件交互之前,我发现它更容易。 我使用类似的过程搜索登录详细信息,并且工作得很好,可惜名称没有显示在列表框中。
http://puu.sh/g5cjK/7132fe251f.png这是代码的结果。 http://puu.sh/g5cWQ/254ecb4041.png我正在使用的XML文件的示例。
如果有人可以帮助使员工姓名正确显示,或指出我出了错的地方,将不胜感激。
名称是元素内的独立文本节点,因此而不是读取.Value
if (nodeFirstName.InnerText != "" && nodeLastName.InnerText != "")
如果有多个元素,则需要在循环中添加到列表中,否则总是以最后一个元素结束。
您可能希望将所有XML填充到一个文件中。
如果您想要完全自动化的东西并且不需要繁琐的逻辑就可以工作,那么我建议您使用xmlSerialiser。 请转到该链接以获取更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.