2012-11-19 2 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) 

을 (필자는 포맷팅을 위해 작성자 생성에서 파일 이름을 분리했지만,를 사용하십시오.도 있습니다.)

+0

당신은 남자입니다! 고마워 .... 일 했어 !! –