0

我有以下 XML 文件。在此,我想过滤所有员工年龄为 23 岁的城市名称。

请帮助我使用 PowerShell 脚本。

我期待答案"Chennai, Banglore"

<?xml version="1.0" ?>
    <customers>
<city name="Chennai">
    <Name>Anand</Name>
    <Id>123</Id>
    <Age>23</Age>
</city>
<city name="Banglore">
    <Name>Arun</Name>
    <Id>321</Id>
    <Age>23</Age>
</city>
<city name="Mumbai">
    <Name>Ashok</Name>
    <Id>1</Id>
    <Age>22</Age>
</city>

我有以下代码来获取城市名称列表,

[xml]$test = Get-Content D:\test.xml
$names = $test.SelectNodes("/customers/city")
$sno = 0
foreach($node in $names)
{
    $sno++
    $id = $node.getAttribute("name")
    Write-Host $sno $id
}

但是如何过滤数据?

4

1 回答 1

4

了解XPath以及如何查询 XML 文档。关键是使用谓词来过滤数据:/customers/city[Age=23]. 像这样,

$names = $test.SelectNodes("/customers/city[Age=23]")
$sno = 0
foreach($node in $names) {
    $sno++
    $id = $node.getAttribute("name")
    Write-Host $sno $id
}

输出:

1 Chennai
2 Banglore
于 2013-04-03T07:51:28.227 回答