You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET实现XML文件追加写入,避免覆盖原有数据

解决XML添加条目被覆盖的问题

你的代码每次调用都会新建XmlDocument并重新创建整个XML结构,因此会直接覆盖原有文件。要实现追加条目的效果,需要先判断文件是否存在:存在则加载现有内容再添加新元素,不存在才创建全新的文档结构。

修改后的代码如下:

Imports System.IO
Imports System.Xml

' 子程序核心逻辑
Dim fabpath As String = Path.Combine(Application.StartupPath, "Fabricantes.xml")
Dim xmlDoc As New XmlDocument()

If File.Exists(fabpath) Then
    ' 加载已存在的XML文件
    xmlDoc.Load(fabpath)
    ' 定位到根节点Fabricantes
    Dim fabricantes As XmlNode = xmlDoc.SelectSingleNode("Fabricantes")
    If fabricantes IsNot Nothing Then
        ' 创建新的厂商元素并追加到根节点下
        Dim newFabricante As XmlElement = xmlDoc.CreateElement("Nome_do_Fabricante")
        newFabricante.InnerText = fabric.Name
        fabricantes.AppendChild(newFabricante)
    End If
Else
    ' 文件不存在时初始化XML基础结构
    Dim declNode As XmlNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", Nothing)
    xmlDoc.AppendChild(declNode)
    
    Dim fabricantes As XmlNode = xmlDoc.CreateElement("Fabricantes")
    xmlDoc.AppendChild(fabricantes)
    
    Dim newFabricante As XmlElement = xmlDoc.CreateElement("Nome_do_Fabricante")
    newFabricante.InnerText = fabric.Name
    fabricantes.AppendChild(newFabricante)
End If

' 保存修改后的XML文件
xmlDoc.Save(fabpath)

关键修改点

  • 增加File.Exists判断,区分首次创建和后续追加两种场景
  • 文件存在时直接加载现有内容,避免重建结构覆盖数据
  • 始终在已有的Fabricantes节点下追加新元素,保证XML结构符合预期

内容的提问来源于stack exchange,提问作者Antônio Bezerra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 18:50:44