正在使用 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
我是 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