この記事は2008/03/06にわんくまブログで書いたものです。
Encodingを指定してXMLファイルを作成する(PowerShell Tips) で紹介した方法で、文字列からXMLファイルを作成すると、インデントと改行がされないことをお伝えしました。
ということで、今回は前回の手順に+αすることで、改行とインデントがされるようにしてみたいと思います。
まずは前回の手順どおりにXmlTextWriterまで作成します。
PS C:\Work> $SaveFile = "C:\Work\UTF8.xml" PS C:\Work> $Encoding = [System.Text.Encoding]::UTF8 PS C:\Work> $strXml = @">> <?xml version='1.0' encoding='utf-8' ?>>> <personal_data>>> <zip_code>012-3456</zip_code>>> <address>1-1,Tokyo,Japan</address>>> <name>HIRO</name>>> </personal_data>>> "@>> PS C:\Work> $xmlDoc = [xml]$strXml PS C:\Work> $XmlWriter = New-Object System.Xml.XmlTextWriter($SaveFile, $Encoding)
で、今回のポイントはここからです
PS C:\Work> $XmlWriter.Formatting = [System.Xml.Formatting]::Indented PS C:\Work> $XmlWriter.Indentation = 4
XmlTextWriter のFormattingプロパティに Indentedを指定することで、作成するXmlドキュメントでインデントがされるようになります。
また、XmlTextWriter の Indentation プロパティを使用することでインデント幅を指定することができます。
上記の場合はインデント幅は空白4つ分です。
あとは、ドキュメントを保存して、XmlTextWriterを閉じておしまいです。
PS C:\Work> $xmlDoc.Save($xmlWriter) PS C:\Work> $XmlWriter.Close()
作成されたドキュメントは下記のように改行とインデントがされています。
<xml version='1.0' encoding='utf-8'?><personal_data> <zip_code>012-3456</zip_code> <address>1-1,Tokyo,Japan</address> <name>HIRO</name></personal_data>
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2009, HIRO
E-mail