HIRO [著] 2009/04/03 14:00

 Windows PowerShellはXMLデータを容易に取り扱うことができるように設計されています。今回は既存のXMLデータを操作するメソッドの使用方法を中心に説明します。

1 2 3 →

はじめに

 前回の記事ではPowerShell上でXMLファイルを作成する方法について説明しました。今回は既存のXMLデータの要素を操作する方法について説明します。

対象読者

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

ルート要素を取得する

 ここではXMLデータからルート要素を取得する方法について説明します。

 まずは事前準備として、前回作成したXMLファイルを下記のようにして読み込みます。

PS> $xmlDoc = [XML](Get-Content "C:\Work\Sample.xml")

 

 通常、ルート要素名が分かっている場合は、XmlDocumentオブジェクト変数とルート要素名をドット(.)で連結することでルート要素を取得することができます。
例えば、ルート要素名が「root」の場合には下記のようにして取得することができます。

PS> $xmlDoc.root

 しかし、読み込んだXMLデータのルート要素名が分からない場合には、要素名を指定しての取得は行うことができません。XmlDocumentオブジェクト変数からルート要素を取り出すには、get_DocumentElement()メソッドを使用します。

PS> $root = $xmlDoc.get_DocumentElement()

 これで$root変数にルート要素が代入されました。このようにして取得した$root変数はXmlElement型となります。

 次に、ルート要素名の取り出しですが、XmlElementオブジェクトのget_Name()メソッドを使用します。

PS> $root.get_Name()

 上記の結果を見ると分かるように、現在取り扱っている$xmlDocのルート要素名が「root」であるということが分かりました。

子要素の存在を確認する

 ここでは指定した要素が子要素を持っているかどうかを確認する方法について説明します。

 子要素の存在は、XmlElementオブジェクトのget_HasChildNodes()メソッドで確認することができます。このメソッドはブール値を返し、子要素が存在する場合にはTRUEを、存在しない場合にはFALSEを返します。

 先ほどの$root変数の子要素を確認するには、下記のようにします。

PS> $root.get_HasChildNodes()

 結果を見ると分かるとおり、子要素があるのでTRUEが返されます。


1 2 3
→
INDEX
Windows PowerShell 活用編(8) XMLデータの基本操作2
Page1
はじめに
対象読者
ルート要素を取得する
子要素の存在を確認する
子要素を取得する
属性を取得する
要素を置換する
指定した子要素を削除する
まとめ
参考文献
プロフィール
HIRO ヒロ

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

2008/07/07にPowerShell from Japan!!というサイトを立ち上げました。PowerShellユーザーが集まってブログを書いています。よろしかったら来てください。

HIRO's.NET Blog
HIRO's.NET - VB.NET, C#, PowerShell Tips -
PowerShell from Japan!!


記事へのコメント・トラックバック機能は2011年6月に廃止させていただきました。記事に対する反響はTwitterやFacebook、ソーシャルブックマークサービスのコメントなどでぜひお寄せください。

スポンサーサイト