나는 그것을 필요로 할 때,이 서식 쓸 수 있도록 온/XmlWriter
의 Indent
재산 사용을 중지 하시겠습니까 :XmlWriter 들여 쓰기 속성을 설정/해제하는 방법은 무엇입니까?
<?xml version="1.0" encoding="Windows-1252"?>
<Songs>
<Song><Name>My Song 1.mp3</Name><Year>2007</Year></Song>
<Song><Name>My Song 2.mp3</Name><Year>2009</Year></Song>
<Song><Name>My Song 3.mp3</Name><Year>2008</Year></Song>
</Songs>
문제는 그 속성을 수정하는 방법을 몰라 , 나는이 속성을 한 번 이상 설정하지 않을 가능성이 다른 다른 질문을 읽었습니다 ...하지만 ... 대신 XmlWriter
을 사용할 경우 언제든지 들여 쓰기를 켜고 끌 수 있습니다. XmlTextWriter
Framework 2.0에서 있으므로 클래스 XmlWriter
이 현재 XmlTextWriter
보다 훨씬 많기 때문에 들여 쓰기 속성을 수정할 방법이 없다고 생각할 수 없습니다.
난 그냥 XmlWriter
미래의 일에 완전히 무용지물이 될 수 있기 때문에 대신 XmlWriter
의 XmlTextWriter
를 사용하지 것이다, 나는 프레임 워크 현재 클래스의 논리를 사용하고 기존 클래스에 내 코드를 기반으로하지 않는 역자 주.
또한 "WriteString 메서드로 들여 쓰기 및 wrtie 줄 바꾸기"와 같은 까다로운 작업을 수행하지 않을 것입니다. 왜냐하면 특정 줄에 예외가 발생하기 때문입니다.
명확히하기 위해, 나는 단지 원할 때 언제든지 들여 쓰기를 켜고 끄는 데 일조 한 XmlWriter
의 들여 쓰기 속성이나 숨은 방법을 켜고 끌 것입니다.
여기 코드입니다. 단지 들여 쓰기 속성을 수정하려고 시도했을 때 예외가 발생하지만, 말한 것처럼 XmlTextWriter
에서 할 수 있습니다 ... 이것은 너무 이상합니다 .
Dim xmlsettings As XmlWriterSettings = _
New XmlWriterSettings() With { _
.Indent = True, _
.Encoding = System.Text.Encoding.Default}
Dim Xml As XmlWriter = XmlTextWriter.Create(xmlfile, xmlsettings)
Private Sub Write_SongInfo_Node(ByVal xml As XmlWriter,
ByVal Name As String, _
ByVal Year As String)
xml.WriteStartElement("Song")
xml.Settings.Indent = False
xml.WriteStartElement("Name")
xml.WriteString(Name)
xml.WriteEndElement()
xml.WriteStartElement("Year")
xml.WriteString(Year)
xml.WriteEndElement()
xml.Settings.Indent = True
xml.WriteEndElement()
' xml.WriteString(Environment.NewLine)
End Sub
이유는 무엇입니까의 형식은' xml' 상관 없어? – flindeberg
@flindeberg 논란의 여지는 있지만 개보수와 탭을 제외하여 파일 크기를 줄일 수 있지만 xml을 그다지 최적화하지 않으면 xml이 잘못된 기술입니다. – Gusdor
@Gusdor 그 경우,'XmlWriterSettings.Indent'를'false'로 설정하고 거기에 두지 않으시겠습니까?나는이 특정한 경우에 이상하게 여겼다. 이해가 가지 않는다. – flindeberg