从多个 XML 文件中读取并在 ListBox 问题中显示数据
Reading from multiple XML files and displaying data in a ListBox issue
所以我一直在做一个项目,但遇到了麻烦。我需要从 XML 个文件中读取员工数据,然后在列表框中显示该数据。
注意:"tempFullName" 是在脚本开头分配的空字符串。它永远不会重置为空。
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。转到 了解更多信息。
所以我一直在做一个项目,但遇到了麻烦。我需要从 XML 个文件中读取员工数据,然后在列表框中显示该数据。
注意:"tempFullName" 是在脚本开头分配的空字符串。它永远不会重置为空。
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。转到