''' <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
2359

被折叠的 条评论
为什么被折叠?



