Powershell Xml - >递归

时间:2017-05-26 10:18:03

标签: xml powershell

是否有任何递归函数将解析整个Xml wchich结构将是这样的:

<main>
 <object>
  <otherObject>
   VALUE
  </otherObject>
 </object>
</main>

问题在于我不知道有多少物体在那里以及有多少孩子将在父母之下。最后一个孩子(没有孩子)将像示例中一样具有VALUE。 是否有一些内置功能,或者你知道如何做到这一点吗?

2 个答案:

答案 0 :(得分:0)

尝试使用$xmlContents = [xml](get-content "filename.xml")

阅读您的文件

答案 1 :(得分:0)

是这样的:

unction GetChilds{
param(
[System.Xml.XmlDocument]$xmlContent,
[string]$path
)


$childs = $xmlContent.SelectNodes($path)

if(! ($childs.HasChildNodes))
    {
    $path = $path.Remove($path.Length-2,2)

    $value = $xmlContent.SelectSingleNode($path).InnerText.Trim()

    }

if(($childs.HasChildNodes))
    {
    foreach($child in $childs)
    {
        $childName = $child.LocalName

        $newpath = $path.TrimEnd('*')
        $newpath = $newpath + $childname

        $newpath=$newpath + "/*"
        GetChilds $xmlContent $newPath
    }

    }



}