PowerShellは、多くのコードを記述したり、XPathを使用したりすることなく、XML文書を読み取るためのいくつかの方法を提供しています。 ここでは、始めることができる方法です。
XMLを操作することは、これまでにやったことのある人をうんざりさせるトピックの一つです。 それは一般的に時間がかかり、理解するのが難しく、お尻の一般的な痛みです。 PowerShell以外のいくつかの言語でXMLをいじるには、XMLツリーを基本的に記憶して、適切なレベルで適切なノードを操作していることを確認する必要があります。 その上で、xmlドキュメント内のコンテンツを見つけるためにあいまいなXPathクエリを書くことを学ぶ必要があります。PowerShellとXMLファイルの読み取り
PowerShellにはまだXPathがありますが、必ずしも使用する必要はありません。 PowerShellは、XMLファイルを読み取り、操作し、最後に多くのコードを記述したり、XPathを知らずにディスクに保存したりする簡単な方法を提供します。 PowerShellは、XMLドキュメント内の各ノードを示すユーザードット表記を提供することによってこれを行います。 しかし、まず、XML文書の読み取りを開始してみましょう。 PowerShellでXMLドキュメントを読み取る1つの方法は、変数を型に型キャストすることです。 この変数を作成するには、Get-Contentコマンドレットを使用して、XMLドキュメント内のすべてのテキストを読み取ることができます。 Get-Contentの出力を型キャストするには、単に変数の前にテキストを追加するだけです。 これはPowerShellに、この変数をシステムとして型キャストする必要があることを伝えます。Xml。通常はGet-Contentから来るデフォルトの配列型の代わりにXmlDocument型。
Xml XmlDocument=Get-Content-Path C:Cars.xml
この記事では、CarsというXMLファイルを使用します。車の様々なメーカーやモデルが含まれている例としてxml、。Get-Contentを実行してXMLドキュメントから生のテキストを読み取り、出力を型Systemにキャストしたら。Xml。XmlDocument、あなたは今、その文書を表すXMLノードツリー全体を含むvariable XmlDocumentと呼ばれる変数を持っています。
この時点で、ドキュメントを読むことは前述のドット表記のために簡単な作業です。 これでXML文書がメモリ内にあるので、ツリーを探索することができます。
ドット表記を使用してドキュメントをより深く深くする方法に注意してください。 Like型(Cars)のノードを含むドキュメント内のスポットをヒットした場合、それをPowerShell配列のように扱い、探しているノードのインデックス番号を指定できま この場合、インデックス番号0を指定することで、ドキュメント内の最初の車を検索します。このXMLドキュメント内の4つ以上の座席を持つすべての車を検索したいとしましょう。
次に、次のようにします。 共通のPowerShellコマンドレットWhere-Objectを使用するだけで、その情報を簡単に取得できます。PowerShellは、ノード(要素)とXML属性の両方をすべて1つのセットで結合していることに注意してください。 これにより、ドット表記とWhere-Objectコマンドレットを使用するだけで、ドキュメントを簡単に櫛を通すことができます。 PowerShellは、各親XMLに関連付けられているすべての属性とサブ要素を認識しており、デフォルトではそれらを素敵なテーブルに表示します。P>
XMLドキュメントを読み取るために使用できる方法を1つ示しました。 PowerShellの素晴らしい点の1つは、それが望むほど簡単でも難しくてもよいことです。 ドット表記を使用してXMLドキュメント内のノードを検索する方法を示しました。 より高度な検索を行う必要がある場合は、Select-Xmlなどのコマンドレットを使用して、より強力なクエリを構築することをお勧めします。 いずれにしても、PowerShellを使用すると、XML文書から何かを読んで見つけることができます。 残りはあなた次第です。