【发布时间】:2018-05-17 09:33:25
【问题描述】:
我正在尝试解析 XML 并将每个“文件夹”添加到 ListView。随着一些 XML 文件的文件夹数量发生变化,我希望代码能够解析并获取每个文件夹。这就是 XML 的一部分:
现在我想阅读文件夹部分。这是我到目前为止的代码:
If (document.Name = "countfolders") Then
countfolder = document.ReadInnerXml.ToString
End If
x = 1
While (countfolder >= x)
If (document.Name = "Folder" & x) Then
ListBox1.Items.Add(document.ReadInnerXml.ToString)
x += 1
End If
End While
但它只是崩溃了。你知道我做错了什么吗?
【问题讨论】:
-
你能告诉我们崩溃时的错误是什么吗?另外,您是否可以控制 XML 的格式?因为如果是这样,您可以使用许多更好的布局来简化此操作 - 例如:
<Folders><Folder>ebay</Folder><Folder>GFX Urban Gardening</Folder></Folders- 这种重复元素的想法在 XML 中很常见。如果您需要维护顺序,您可以使用<Folders><Folder id=1>ebay</Folder><Folder id=2>GFX</Folder></Folders>- 这样可以在不更改元素名称的情况下维护顺序。 -
@simonalexander2005 感谢您的快速回复。崩溃是指应用程序不再响应,但没有任何错误信息。似乎它卡在某个地方。是的,我确实可以控制制作 XML。在一个步骤中,我通过读取硬盘驱动器的文件夹来创建 XML,并将它们放入屏幕截图中提供的 XML 中。在另一个步骤中,我想将文件夹读入 ListView。你建议做什么?
-
你有附加的 Visual Studio 调试吗?也许尝试查看“输出”窗格;您可能会在那里看到一些信息。另外,您不使用 LINQ 有什么特别的原因吗?
For Each element In root.Elements.Where(Function(x) x,Name.StartsWith("Folder")): ListBox1.Items.Add(element.Value): Next -
如果您使用
Option Strict On可能会有所帮助。某些东西可能会被转换为其他东西并使其出错 - 该设置会让您知道变量类型不匹配。您应该更改设置,使其也成为新项目的默认设置。