使用Powershell的平面xml文件递归方法
我有一个平面xml文件。元素位于同一级别,了解元素之间如何归属的唯一方法是parentId,如下所示使用Powershell的平面xml文件递归方法,xml,powershell-2.0,Xml,Powershell 2.0,我有一个平面xml文件。元素位于同一级别,了解元素之间如何归属的唯一方法是parentId,如下所示 <pages> <page id="1" parentId="0"> ... </page> <page id="2" parentId="1"> ... </page> <page id="3" parentId="1"> ... </page> <page id="4" paren
<pages>
<page id="1" parentId="0">
...
</page>
<page id="2" parentId="1">
...
</page>
<page id="3" parentId="1">
...
</page>
<page id="4" parentId="2">
...
</page>
...
....
</pages>
...
...
...
...
...
....
我想创建一个递归方法,遍历所有页面并将它们相互替换,并使用Powershell使其像真正的xml(树结构)一样。我需要为每个元素读取整个xml吗?我解决了它,这是我的解决方案:
function GetName($parentNode)
{
Write-Host $parentNode.Id " " $parentNode.Name
$childs = $AMtalatData.Pages.Page | Where-Object {$_.ParentId -eq $parentNode.Id}
foreach($node in $childs)
{
Write-Host " id="$node.Id " " $node.Name
$grundChilds = $MyData.Pages.Page | Where-Object {$_.ParentId -eq $node.Id}
if($grundChilds.Count -gt 0)
{
MyFunction-parentNode $node
}
}
}
$myelem= $MyData.Pages.Page | Where-Object {$_.Id -eq 12}
MyFunction -parentNode $myelem