我正在尝试创建一个简单地通过目录递归的 Powershell 脚本,提取 XML 文件。然后我们遍历每个 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
其中,第一项为根节点的属性,具体为schema信息;第二项是从根向下的下一个节点。虽然有更多节点,但不会显示。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+ 个。