Monday, March 31, 2008

この記事は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>

Monday, March 31, 2008 5:05:53 AM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Comments are closed.

Theme design by Jelle Druyts

Pick a theme: