是否有任何递归函数将解析整个Xml wchich结构将是这样的:
<main>
<object>
<otherObject>
VALUE
</otherObject>
</object>
</main>
问题在于我不知道有多少物体在那里以及有多少孩子将在父母之下。最后一个孩子(没有孩子)将像示例中一样具有VALUE。 是否有一些内置功能,或者你知道如何做到这一点吗?
答案 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
}
}
}