.net 替换XML文件中的值

.net 替换XML文件中的值,.net,xml,vb.net,.net,Xml,Vb.net,我试图加载一个XML文件,替换一个特定值,然后保存该文件 以下是文件的外观: 我试图用Version=“36”更新示例中的第4行。我遇到的问题是36整数在不同的文件中变化,它可以有任何数字。而且该文件还有一些字符串版本的实例。那么我如何替换第一个版本呢 以下是我尝试过的: Dim gzFile As String=“C:\users\desktop\delete.txt” Dim doc As XmlDocument=新的XmlDocument Dim xmlReader As XmlTex

我试图加载一个XML文件,替换一个特定值,然后保存该文件

以下是文件的外观:


我试图用
Version=“36”
更新示例中的第4行。我遇到的问题是36整数在不同的文件中变化,它可以有任何数字。而且该文件还有一些字符串版本的实例。那么我如何替换第一个版本呢

以下是我尝试过的:

Dim gzFile As String=“C:\users\desktop\delete.txt”
Dim doc As XmlDocument=新的XmlDocument
Dim xmlReader As XmlTextReader=新的XmlTextReader(gzFile)
doc.Load(xmlReader)
将节点标注为XmlNodeList=doc.SelectNodes(“PremiereData/Project/Project”)
MsgBox(doc.SelectSingleNode(“PremiereData/Project/Project.ToString”)
将每个节点作为节点中的XmlNode
MsgBox(node.Attributes(“Version”).Value.ToString)
如果node.Attributes(“Version”).Value.ToString为“36”,则
MsgBox(“已找到”)
node.Attributes(“版本”).Value=“16”
如果结束
下一个
xmlReader.Close()
doc.Save(gzFile)

如果要更改具有
ObjectID='1'
的第一个
项目
元素的
Version
属性的值,可以执行以下操作:

Imports System.Xml
模块1
副标题()
Dim src=“C:\temp\project.xml”
Dim文档作为新的XmlDocument
文件加载(src)
Dim n=doc.SelectSingleNode(//Project[@ObjectID='1']))
如果n不是什么,那么
Dim attr=n.SelectSingleNode(@Version)
如果attr不是空的,那么
attr.Value=“看这里!”
其他的
如果问题出在没有“版本”属性的情况下,或许可以采取一些措施。
如果结束
其他的
'如果存在问题,可能需要执行一些操作,因为没有ObjectID为='1'的项目。
如果结束
文件保存(src)
Console.ReadLine()
端接头
端模块
结果:


请注意,属性值是一个字符串,它的解释是一个整数(在您的情况下)。

尝试以下操作:

在所有节点上循环检查
Node.Attributes(“Value”)
是否为
而非Nothing
,然后对其执行任何操作

像这样

Dim gzFile As String = "C:\users\desktop\delete.txt"
Dim doc As XmlDocument = New XmlDocument
Dim xmlReader As XmlTextReader = New XmlTextReader(gzFile)
doc.Load(xmlReader)
Dim nodes As XmlNodeList = doc.SelectNodes("PremiereData/Project")

Dim found As Boolean = False
For Each node As XmlNode In nodes
    If (Not node.Attributes ("Value") Is Nothing) Then
        If (node.Attributes("Version").Value.ToString  = "36" ) Then
            MsgBox("found")
            node.Attributes("Version").Value = "16"
            found = True
        End If
        If found = True
            Exit For
        End If
    End If
Next

xmlReader.Close()
doc.Save(gzFile)

它是第一个具有属性的
元素
ObjectID
ClassID
版本
,还是第一个具有属性的
元素
ObjectID=“1”
,或者它还有什么其他特性使它独一无二?这回答了您的问题吗?