2017-05-26 50 views
-1

沒有任何的遞歸功能,這將解析整個XML wchich結構是這樣的:PowerShell的的Xml - >遞歸

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

的問題是,我將不知道有多少對象將在那裏和父母有多少孩子。最後一個孩子(沒有孩子)會像例子那樣有VALUE。 有一些內置功能,還是你知道該怎麼做呢?

+0

請參見[如何問一個很好的問題(https://stackoverflow.com/help/how-to - 問題)幫助頁面。到目前爲止您嘗試過什麼,以及您遇到什麼錯誤/問題? StackOverflow不是代碼寫入服務。理想的情況是提供一種[最小,完整的,並且可驗證示例](https://stackoverflow.com/help/mcve) – gms0ulman

回答

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 
    } 

    } 



} 
0

嘗試與$xmlContents = [xml](get-content "filename.xml")