繁体   English   中英

使用 PowerShell 解析 XML 文件

[英]Parsing XML file using PowerShell

我是 Powershell 的新手,我不想获取此 xml 的所有 ID(无法更改 xml,因为这只是我问题的一个说明)

<?xml version="1.0" encoding="ISO-8859-1"?>
<List>
 <Person1>
    <Id>E00023</Id>
    <empName>Aadharsh</empName> 
 </Person1>
 <Person2>
    <Id>E00042</Id>
    <empName>Raksha</empName> 
 </Person2>
</List>

使用此代码,我只能获得 Person1 的 ID:

$XMLfile = 'C:\test.xml'
[XML]$empDetails = Get-Content $XMLfile
     
foreach($module in $empDetails.List.Person1){
Write-Host "Id :" $module.Id
}

我尝试了以下代码,但我不起作用:( 问题是 Person1 和 Person2 是不同的名称。我必须更改什么才能获得所有 Id?

$XMLfile = 'C:\test.xml'
[XML]$empDetails = Get-Content $XMLfile
 
foreach($module in $empDetails.List.$module){
Write-Host "Id :" $module.Id
}

你可以只迭代XmlNode.ChildNodes

$XMLfile = 'C:\test.xml'

[xml]$empDetails = Get-Content -Path $XMLfile

foreach ($person in $empDetails.List.ChildNodes) {
    $person.Id
}

或者使用XmlNode.SelectNodes并展开InnerText

$empDetails.List.SelectNodes("//Id").InnerText

输出:

E00023
E00042

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM