SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows PowerShell 活用編

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに 

 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)

次のページ
XMLドキュメントオブジェクトを操作する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Windows PowerShell 活用編連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3681 2009/03/30 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング