' '' <summary> ' '' 创建XML文件 ' '' </summary> ' '' <param name="xmlFileName">要创建的XML文件名</param> ' '' <remarks></remarks> Private Sub createXML() Sub createXML(ByVal xmlFileName As String) Try Dim writer As New Xml.XmlTextWriter(Application.StartupPath & "" & xmlFileName, System.Text.Encoding.GetEncoding("utf-8")) '使用自动缩进便于阅读 writer.Formatting = Xml.Formatting.Indented writer.WriteRaw("<?xml version=""1.0"" encoding=""utf-8"" ?>") '书写根元素() writer.WriteStartElement("Config") '添加次级元素 writer.WriteStartElement("DatabaseSetting") '添加子元素() writer.WriteElementString("DataSource", Me.cmbHostName.SelectedItem.ToString.Trim) '为Datasource添加一个属性为value,值为test 的属性 'writer.WriteAttributeString("value","test") writer.WriteElementString("InitialCatalog", Me.cmbDatabaseName.SelectedItem.ToString.Trim) writer.WriteElementString("UserID", Me.txtUserName.Text.Trim) writer.WriteElementString("Password", Me.txtPassword.Text.Trim) '关闭次级元素DatabaseSetting writer.WriteEndElement() '添加次级元素StationSetting writer.WriteStartElement("StationSetting") '添加子元素 writer.WriteElementString("StoreID", Me.cmbStoreID.SelectedItem.ToString.Trim) writer.WriteElementString("StationID", Me.cmbStationID.SelectedItem.ToString.Trim) '关闭次级元素StationSetting writer.WriteEndElement() '关闭根元素 writer.WriteFullEndElement() '将XML写入文件并关闭writer writer.Close() Catch ex As Exception MsgBox(ex.Message & vbCrLf & ex.StackTrace) End Try End Sub ' '' <summary> ' '' 修改XML ' '' </summary> ' '' <param name="xmlFileName">要修改的XML文件名</param> ' '' <param name="rootName">XML文件中的根元素名称</param> ' '' <param name="elementNameArry">要修改的元素数组</param> ' '' <param name="innerTextArry">对应于要修改的元素数组的修改文本数组</param> ' '' <remarks></remarks> Public Sub modifXML() Sub modifXML(ByVal xmlFileName As String, ByVal rootName As String, ByVal elementNameArry() As String, ByVal innerTextArry() As String) If My.Computer.FileSystem.FileExists(Application.StartupPath.Trim & "" & xmlFileName) Then Dim doc As New Xml.XmlDocument doc.Load(Application.StartupPath.Trim & "" & xmlFileName) Dim list As Xml.XmlNodeList = doc.SelectSingleNode(rootName).ChildNodes For Each xn As Xml.XmlNode In list Dim xe As Xml.XmlElement xe = xn Dim nls As Xml.XmlNodeList = xe.ChildNodes For Each xn1 As Xml.XmlNode In nls Dim xe2 As Xml.XmlElement xe2 = xn1 For i As Integer = 0 To elementNameArry.Length - 1 If xe2.Name = elementNameArry(i) Then xe2.InnerText = innerTextArry(i) End If Next Next Next doc.Save(Application.StartupPath.Trim & "" & xmlFileName) End If End Sub ' '' <summary> ' '' 读取XML文件 ' '' </summary> ' '' <param name="xmlFileName">要读取的XML文件名</param> ' '' <remarks></remarks> Private Sub readXMl() Sub readXMl(ByVal xmlFileName As String) Try If My.Computer.FileSystem.FileExists(Application.StartupPath & "" & xmlFileName) Then Dim doc As New Xml.XmlDocument doc.Load(Application.StartupPath.Trim & "" & xmlFileName) Dim re As Xml.XmlNodeReader = New Xml.XmlNodeReader(doc) Dim tmpStr As String = "" Dim name As String While re.Read Select Case re.NodeType Case Xml.XmlNodeType.Element name = re.Name Case Xml.XmlNodeType.Text If name.Equals("DataSource") Then tmpStr = tmpStr & "Data Source=" & re.Value End If If name.Equals("InitialCatalog") Then tmpStr = tmpStr & ";Initial Catalog=" & re.Value End If If name.Equals("UserID") Then tmpStr = tmpStr & ";User ID=" & re.Value End If If name.Equals("Password") Then tmpStr = tmpStr & ";Password=" & re.Value End If End Select End While End If Catch ex As Exception MsgBox(ex.Message & vbCrLf & ex.StackTrace) End Try End Sub