SHOEISHA iD

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

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

Windows PowerShell 活用編

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

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

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

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

はじめに

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

次のページ
子要素を取得する

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

  • 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/3755 2009/04/03 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング