2012-11-19 33 views
0

我有一個即時通訊嘗試用來獲取一些XML輸出,但無論我做什麼輸出文件寫在同一行上的所有內容:下面是我的代碼如下,你能告訴我我哪裏可能會出錯嗎?在XMLWriter格式化總是寫在同一行

Private Sub CreateActionFile() 

     Dim lobjDirectory As New DirectoryInfo(mstrFolderName) 
     Dim lobjFiles As New List(Of FileInfo) 
     lobjFiles.AddRange(lobjDirectory.GetFiles("*.xml")) 
     Dim lobjWriter As XmlWriter = XmlWriter.Create(mstrFolderName & "\" & txtActionName.Text & ".xml") 

     Dim lobjSettings As New XmlWriterSettings() 

     lobjSettings.Indent = True 
     lobjSettings.NewLineOnAttributes = True 

     Dim lstrStartFileNumber As Integer = CInt(txtFrom.Text) 
     Dim lstrEndFileNumber As Integer = CInt(txtTo.Text) 

     lobjWriter.WriteStartElement("Action") 
     lobjWriter.WriteAttributeString("ID", Me.txtID.Text) 
     lobjWriter.WriteAttributeString("Name", Me.txtActionName.Text) 
     lobjWriter.WriteAttributeString("Type", "XML") 
     lobjWriter.WriteStartElement("xml") 
     While lstrEndFileNumber > lstrStartFileNumber 
      For Each lobjFile As FileInfo In lobjFiles 
       If lobjFile.Name.StartsWith(lstrStartFileNumber.ToString) Then 
        Dim lobjXmlDom As New XmlDocument 
        lobjXmlDom.Load(lobjFile.FullName) 
        lobjXmlDom.WriteContentTo(lobjWriter) 
        lstrStartFileNumber = lstrStartFileNumber + 1 
       Else 
        'Nothing - move on 
       End If 
      Next 
     End While 
     lobjWriter.WriteEndElement() 
     lobjWriter.WriteEndElement() 
     lobjWriter.WriteEndDocument() 

     lobjWriter.Close() 

    End Sub 

回答

3

創建的設置,但隨後沒有將它們傳遞到任何東西:

Dim lobjSettings As New XmlWriterSettings() 
lobjSettings.Indent = True 
lobjSettings.NewLineOnAttributes = True 

你應該使用它們,當你創建XmlWriter

Dim filename = Path.Combine(mstrFolderName, txtActionName.Text & ".xml") 
Dim lobjWriter = XmlWriter.Create(filename, lobjSettings) 

(我已經將作家創建的文件名從格式中分離出來,但請注意使用Path.Combine)。

+0

你是男人!謝謝....它的工作! –