CodeZine(コードジン)

特集ページ一覧

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

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

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

目次

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

 ここからはXmlDocumentオブジェクトを操作する方法について説明します。

 まずは前準備として、先ほど説明したとおり下記のように入力してXmlDocumentオブジェクトを作成します。

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

  

各要素へアクセスする

 ここでは各要素にアクセスする方法について説明します。

 ルート要素は、変数$xmlDocを直接参照することでアクセス可能です。

PS> $xmlDoc
root
----
root

 上記のようにすることで$xmlDocがrootという要素を持っていることを確認できます。

 さらに子要素へアクセスするには$xmlDocと root要素の間をドット(.)で連結してアクセスします。$xmlDocの後にドット(.)を入力したら[Tab]キーを押してみてください。Tab補完を使用することができます。これにより要素名を忘れてしまっても補完候補の中から選択することができます。

PS> $xmlDoc.root
child1                                     child2
-----                                      -----
1                                          2

 このことからroot要素には2つの子要素child1とchild2があることが確認できます。

 また子要素が持つデータへのアクセスは、さらにドット(.)で子要素を連結することでアクセスできます。

PS> $xmlDoc.root.child1
1
PS> $xmlDoc.root.child2
2

 次に値の書き換えについて説明します。

 XMLデータ型も他の変数と同様の方法で値を書き換える(代入)することができます。例えば root要素の子要素であるchild1に5という値を書き込むには下記のようにします。

PS> $xmlDoc.root.child1 = "5"

 ただし、1点注意していただきたいことがあります。代入する値は必ず文字(列)としてください。これはXMLデータ型は文字列以外のデータを自動的に変換しないためです。

 もしも間違えて文字列でない値を代入しようとした場合は下記のようにエラーとなります。

PS> $xmlDoc.root.child1 = 5
"child1" を設定できません。XmlNode のプロパティの設定では、値として文字列のみを使用できます。
発生場所 行:1 文字:14
+ $xmlDoc.root.d <<<< ata1 = 5

  • 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