CodeZine(コードジン)

特集ページ一覧

Windows PowerShell 活用編(7)
XMLデータの基本操作1

XMLドキュメントオブジェクトの作成とファイル出力

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/03/30 14:00

目次

ファイルに保存する

 ここではxmlDocumnetオブジェクトをXMLファイルとして保存する方法について説明します。

 ここまでに作成したxmlDocumentオブジェクトをXMLとしてファイルに保存するにはSaveメソッドを使用します。Saveメソッドの引数には保存先となるパスを指定し、下記のように記述します。

PS> $xmlDoc.Save("C:\Work\Sample.xml")

 これでXMLファイルとして保存することができました。

 作成されたファイルをテキストエディタで開いてみると

<root ID="123">
  <child1>5</child1>
  <child2>2</child2>
  <child3>3</child3>
</root>

  

となっており、先頭にXML宣言がないことが分かります。またエンコーディングはShift-Jisで保存されています。

 これをエンコーディングがUTF-8のXML宣言を付加した形で保存するにはXmlTextWriterクラスを使用します。XmlTextWriterクラスは引数にファイルのパスとエンコーディングを指定します。

 最初にUTF-8のエンコーディングを下記のようにして準備します。

PS> $Encoding = [System.Text.Encoding]::UTF8

  

 次にXmlTextWriterを作成します。ここで引数に保存するファイルのパスとエンコーディングを指定しています。 

PS> $XmlWriter = New-Object System.Xml.XmlTextWriter("C:\Work\Sample.xml",$Encoding)

 

 さらに、下記のようにしてXMLファイルを作成するときにインデントされるように指定します。この指定がない場合には、インデントをせずに1行のXMLデータファイルが作成されてしまいます。

PS> $xmlWriter.Formatting = [System.Xml.Formatting]::Indented

 

 次にSaveメソッドでファイルに保存します。ここでSaveメソッドの引数に作成したXmlTextWriterを指定します。これでXML宣言が付加され、UTF-8で保存されます。

PS> $xmlDoc.Save($XmlWriter)

 最後に保存が完了したら、XmlTextWriterClose()メソッドで終了します。

PS> $xmlWriter.Close()

 このようにして作成されたファイルを開くと、下記のようにXML宣言がつき、インデントがされ、UTF-8で保存されたXMLが確認できます。

まとめ

 今回は、PowerShellでのXMLデータ作成を中心に説明しました。PowerShellからXMLファイルを作成することは難しくないことをご理解いただけたかと思います。次回は、既存のXMLファイルから読み込んだデータを操作する方法について説明します。どうぞお楽しみに。

 

参考文献



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Windows PowerShell 活用編

もっと読む

著者プロフィール

  • HIRO(ヒロ)

    HIRO's.NETのHIROです。 とある半導体工場のSEです。 VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。 最近はBlog でPowerShellについて書いています。 2008/07/07にPowerShell from Japan!!という...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5