XMLDocumentからXML文字列をインデントを整えて取得

おはようございます。

みなさんXMLDocumentクラスには日頃からお世話になっていることでしょう。

 XmlDocument クラス (System.Xml)

このXMLDocumentからXML文字列を取得したい場合、InnerXMLで取得できます。

が、<rakko>らっこ</rakko><koara>こあら</koara><rakuda>らくだ</rakuda>…というように改行もインデントもありません。

Saveメソッドで保存する際に見やすく綺麗に整頓されますが、このSaveメソッドの説明が雑です。引数違いで4種類くらいありますが、とっつきやすいのはファイルパスを指定して保存するというもの。XMLファイルとして保存するという要求ならOKですが、ただ文字列としてほしい場合これは困りものです。お仕事だとローカルフォルダにファイルを置くってだけで権限やらポリシーやら絡んできますからね。

んで文字列だけ取り出すのが↓

Dim rvRep as string

Dim rvStringBuilder As Text.StringBuilder = New Text.StringBuilder

Dim rvTextWriter As IO.TextWriter = New IO.StringWriter(rvStringBuilder)

xmlDocNew.Save(rvTextWriter)

rvRep = rvStringBuilder.ToString

 

なかなか便利です。お試しあれ。