Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

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

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

目次

はじめに

 前回の記事では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が返されます。


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

著者プロフィール

  • HIRO(ヒロ)

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

バックナンバー

連載:Windows PowerShell 活用編

もっと読む

おすすめ記事

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5