HIRO's.NET Blog

PowerShellが好き

目次

Blog 利用状況

ニュース

あわせて読みたい

書庫

日記カテゴリ

リンク

Encodingを指定してXMLファイルを作成する その2(PowerShell Tips)

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>

投稿日時 : 2008年3月6日 14:09

コメントを追加

No comments posted yet.
タイトル  
名前  
URL
コメント