Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

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

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

 Windows PowerShellはXMLデータを容易に取り扱うことができるように設計されています。今回はPowerShellでXMLデータを作成し、ファイル出力する方法について説明します。

目次

はじめに 

 XMLは設定ファイルやデータベースなど、昨今では至る所で使用されています。XMLファイルからデータを取得したり書き込んだりという作業は、テキストエディタや専用のエディタ、または自作のツールを使用するなど、さまざまな方法で行えますが、PowerShellもXMLファイルを容易に扱うことができるように設計されています。

 今回はPowerShellでのXML操作方法について説明します。

対象読者

  • Windows PowerShellの基本操作が行える方。
  • XMLについて基本知識を有する方

データ型と型変換

 PowerShellでは明示的にデータ型を表すことができるのですが、その中の1つに [XML]というXML用のデータ型エイリアスがあります。これは.NETのデータ型System.Xml.XmlDocumentに対応するものです。

 たとえば下記のようなXMLデータを文字列$strへ代入します。

<root>
  <child1>1</child1>
  <child2>2</child2>
</root>
PS> $str = "<root><child1>1</child1><child2>2</child2></root>"
PS> $str.GetType()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

 このようにして代入したデータは、あくまでも文字列でありPowerShellの中ではXMLデータとして扱われません。

 上記を少し変更し、下記のように文字列の先頭に[XML]を付けることで、この文字列は[XML]型になります。このようにある型を別の型へ変更することを型変換またはキャストと言います(以降キャストと呼ぶことにします)。

PS> $xmlDoc = [xml]"<root><child1>1</child1><child2>2</child2></root>"

 このようにして代入したデータはPowerShellではXmlDocumentオブジェクトとして取り扱えるようになります。

 もう1つ例を紹介します。

 下記はXMLファイルをGet-Contentコマンドレットで読み込み[XML]キャストしています。通常Get-Contentを使用して読み込んだファイルはテキストデータとなりますが、 [XML]キャストすると、XmlDocumentオブジェクトとして取り扱うことができるようになります。

PS> $xmlDoc = [XML](Get-Content Sample.xml)

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

著者プロフィール

  • HIRO(ヒロ)

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

バックナンバー

連載:Windows PowerShell 活用編

もっと読む

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