是否有可能只是转到文件的末尾并返回一行?
当然可以,但是这样做会非常不安全。它假设 XML 文件的编写方式,这也是同样有效的 XML:
<?xml version="1.0" encoding="utf-8"?>
<list><item><name>Item 1</name><due>Tomorrow</due></item><item><name>Item 2</name><due>Thursday</due></item></list>
现在它会变得有点复杂。相反,您应该使用 XML 解析器,解析 XML 文件,操作 XML 的文档对象模型 (DOM),然后将其保存回来。你可以这样做:
Dim document As XDocument = XDocument.Load("pathtoxmlfile.xml")
Dim root = document.Root
root.Add(
New XElement("item",
New XElement("name", "Item 3"),
New XElement("due", "Friday"))
)
document.Save("pathtoxmlfile.xml")
这利用了框架的XDocument
类,这是一个很好的工具,可以轻松使用 XML 文件的对象模型。
如何选择和删除特定节点?
您可以使用LINQ-to-XML编写删除查询。只需编写一个 LINQ 查询来选择您想要的元素,然后使用Remove()
. 这是一个删除我们刚刚添加的项目的示例:
Dim document As XDocument = XDocument.Load("pathtoxmlfile.xml")
Dim root = document.Root
Dim deleteThese = From e In root.Elements("item") Where e.Element("name").Value = "Item 3"
If deleteThese.Any() Then
deleteThese.Remove()
document.Save("pathtoxmlfile.xml")
End If