0

我正在实现一个带有“最近打开的文件”系统的系统。基本上,当用户通过程序打开一个文件时,一个 XML 节点会添加到 data.xml 中,如下所示:

<?xml version="1.0" encoding="utf-8" ?>

<!-- Core Data -->
<!-- Should NOT be messed with as this may corrupt your files! -->

<Data>
    <RecentlyOpenedFile>Libraries\Documents\company.blue</RecentlyOpenedFile>
    <RecentlyOpenedFile>C:\File.blue</RecentlyOpenedFile>

    <CurrentVersion>1.0.0</CurrentVersion>
</Data>

现在我需要实现一个按钮,该按钮基本上删除了一个名为“RecentlyOpenedFile”的节点的所有实例(如清除最近列表)。所以我有这个代码:

Sub ClearRecent()
    Dim DataDoc As XDocument = XDocument.Load(dataFile)
    For Each curElement As XElement In DataDoc...<RecentlyOpenedFile>
        curElement.Remove()
        DataDoc.Save(dataFile)
    Next
End Sub

但是当我运行 ClearRecent() 时,它返回以下错误:在此处输入图像描述

4

1 回答 1

0

制作一个项目列表,然后以相反的顺序迭代该列表。

Dim xmlTree As XElement =
     <Root>
       <Child1>child1 content</Child1>
       <Child1>child2 content</Child1>
       <Child1>child3 content</Child1>
       <Child1>child4 content</Child1>
       <Child5>child5 content</Child5>
     </Root>

Dim child = xmlTree.<Child1>
For i As Integer = child.Count - 1 To 0 Step -1
  child(i).Remove()
Next
Debug.WriteLine(xmlTree.ToString)

输出:

<Root>
 <Child5>child5 content</Child5>
</Root>
于 2013-07-27T15:41:35.537 回答