SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

Windows PowerShell 活用編

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

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

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

次のページ
要素の追加

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

Windows PowerShell 活用編連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3681 2009/03/30 14:00

イベント

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

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

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

メールバックナンバー