ディレクトリを単純に再帰してXMLファイルを引き出すPowershellスクリプトを作成しようとしています。次に、各 XML をループして、特定のノードの数を返したいだけです。率直なもの。ただし、動作させることができず、子ノードを正しくロードしていません。
これが私のコードです:
foreach ($file in $xmlFiles)
{
$xml = [xml](Get-Content $file)
$xml.SelectNodes("//RootNode/NextNode")
Write-Host $xml.count
}
問題はコードにあるのではなく、おそらく XML ファイル自体にあると思います。$xml.ChildNodes を実行すると、次のようになります。
xmlns NextNode
_____ _____
http://urlgoeshere NextNode
ここで、最初の項目はルート ノードの属性、具体的にはスキーマ情報です。2 番目の項目は、ルートから 1 つ下のノードです。ただし、表示されないノードが他にもあります。XML は、あるプログラムによって生成され、別のプログラムによって使用されるため、整形式です。ただし、 ChildNodes はすべてのノードを表示していません。
<ScreeningSubmission xmlns="http://schema/">
<submission version="2.0">
<patient>
<firstname></firstname>
<lastname></lastname>
<gender></gender>
<date-of-birth></date-of-birth>
<ethnicity></ethnicity>
<client_ref></client_ref>
<address1></address1>
<address2></address2>
<address3></address3>
<postcode> </postcode>
<telephone></telephone>
<events>
<result>
<date></date>
<read2></read2>
<value></value>
<units></units>
<term30></term30>
<term60></term60>
</result>
</events>
</patient>
</submission>
</ScreeningSubmission>
基本的に、ノードの数を数えたいと思います。通常、このノードは約 10 以上あります。