asp.net 操作XML 按指定格式写入XML数据 WriteXml

  

复制代码 代码如下:

  Private Sub WriteXml()

  Try

  Create(strFName, "NewDataSet")

  SaveXMLFile("gg", "NewDataSet", True)

  Catch ex As Exception

  MsgBox(ex.Message)

  End Try

  End Sub

  Private Function Create(ByVal FileName As String, ByVal Root As String) As Boolean

  Dim NewXML As XmlTextWriter = Nothing

  Irowcount = objDataSet.Tables("DataAnalyseVIEW").Rows.Count

  Icolcount = objDataSet.Tables("DataAnalyseVIEW").Columns.Count

  Try

  NewXML = New XmlTextWriter(FileName, Nothing)

  NewXML.Formatting = Formatting.Indented

  NewXML.WriteStartDocument()

  NewXML.WriteComment(My.Application.Info.AssemblyName & " Settings ") '项目名称

  NewXML.WriteStartElement(Root)

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").TableName.ToString())

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").Columns(2).ColumnName().ToString())

  NewXML.WriteString(objDataSet.Tables("SerialNumberTable").Rows(txtN)("SerialNumber").ToString())

  NewXML.WriteEndElement()

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").Columns(3).ColumnName().ToString())

  NewXML.WriteString(objDataSet.Tables("DataAnalyseVIEW").Rows(0)("Client").ToString())

  NewXML.WriteEndElement()

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").Columns(5).ColumnName().ToString())

  NewXML.WriteString(objDataSet.Tables("DataAnalyseVIEW").Rows(0)("Productor").ToString())

  NewXML.WriteEndElement()

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").Columns(6).ColumnName().ToString())

  NewXML.WriteString(objDataSet.Tables("DataAnalyseVIEW").Rows(0)("Model").ToString())

  NewXML.WriteEndElement()

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").Columns(4).ColumnName().ToString())

  NewXML.WriteString(objDataSet.Tables("DataAnalyseVIEW").Rows(0)("StationName").ToString())

  NewXML.WriteEndElement()

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").Columns(7).ColumnName().ToString())

  NewXML.WriteString(objDataSet.Tables("DataAnalyseVIEW").Rows(0)("DataTime").ToString())

  NewXML.WriteEndElement()

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").Columns(8).ColumnName().ToString())

  NewXML.WriteString(objDataSet.Tables("DataAnalyseVIEW").Rows(0)("status").ToString())

  NewXML.WriteEndElement()

  NewXML.WriteEndElement()

  Progressbar1.Step = 1

  Progressbar1.Value = 1

  Progressbar1.Visible = True

  For Irow = 0 To Irowcount - 1

  Progress(Irowcount - 1)

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").TableName.ToString())

  For Icol = 0 To Icolcount - 1

  If Icol < 2 Or Icol > 7 Then

  NewXML.WriteStartElement(objDataSet.Tables("DataAnalyseVIEW").Columns(Icol).ColumnName().ToString)

  NewXML.WriteString(objDataSet.Tables("DataAnalyseVIEW").Rows(Irow)(Icol).ToString())

  NewXML.WriteEndElement()

  End If

  Next

  NewXML.WriteEndElement()

  Next

  NewXML.WriteEndElement()

  NewXML.WriteEndElement()

  NewXML.Flush()

  NewXML.Close()

  Catch ex As Exception

  Debug.Print("Create - " & ex.Message)

  Return False

  Finally

  If NewXML IsNot Nothing Then

  NewXML.Close()

  NewXML = Nothing

  End If

  End Try

  Return True

  End Function

  Private Function SaveXMLFile(ByVal aSection As String, ByVal aKey As String, ByVal aValue As String) As Boolean

  Dim Paths() As String

  Dim n As Integer

  Dim Node, Node2 As XmlNode

  Dim Ele As XmlElement

  While Strings.Left(aSection, 1) = "/ "

  aSection = Strings.Mid(aSection, 2)

  End While

  If aSection = " " Then

  xmlDoc.DocumentElement.RemoveAll()

  Else

  Paths = Strings.Split(aSection, "/ ")

  Try

  Node = xmlDoc.DocumentElement.SelectSingleNode(Paths(n))

  If Node Is Nothing Then

  Ele = xmlDoc.CreateElement(Paths(n))

  Node = xmlDoc.DocumentElement.AppendChild(Ele)

  End If

  For n = 1 To Paths.Length - 1

  If Paths(n) = " " Then Continue For

  Node2 = Node.SelectSingleNode(Paths(n))

  If Node2 Is Nothing Then

  Ele = xmlDoc.CreateElement(Paths(n))

  Node2 = Node.AppendChild(Ele)

  End If

  Node = Node2

  Next

  If aKey = " " Then

  Node.RemoveAll()

  Else

  Ele = Node.Item(aKey)

  If Ele Is Nothing Then

  Ele = xmlDoc.CreateElement(aKey)

  Node.AppendChild(Ele)

  End If

  If aValue = " " Then

  Node.RemoveChild(Ele)

  Else

  Ele.InnerText = aValue

  End If

  End If

  Catch ex As Exception

  Debug.Print(ex.Message)

  Return False

  End Try

  End If

  xmlDoc.Save(strFileName)

  End Function