使用Powershell的平面xml文件递归方法

使用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

我有一个平面xml文件。元素位于同一级别,了解元素之间如何归属的唯一方法是parentId,如下所示

<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