1
所以我有这个函数,我用来从我的XML节点之一获取属性“类型”。 XML文件中至少有两个节点。访问XML属性与PowerShell失败的一个节点,但不是另一个
XML部分看起来像这样
<config>
<local>
<setup>
<backup type="7Day"/>
<folder name="Backups" type="backup_root">
<folder name="DayTemplate" type="day_template">
<folder name="Logs"/>
<folder name="Objects">
<folder name="Applications"/>
</folder>
</folder>
</folder>
</setup>
</local>
</config>
在我的功能在下面,我通过XML对象$ xmlDoc.config.local.setup然后什么“型”我希望找到。使用情况类似于
$type = Get-FolderNameByType -folders $xmlDoc.config.local.setup -type 'day_template'
第一个文件夹类型'backup_root'我可以在调试代码时看到。如果未能按预期匹配,但第二个'day_template'从未找到。 foreach循环由于某种原因跳过它,我不知道为什么。
function Get-FolderNameByType
{
param
(
[Object]
$folders,
[Object]
$type
)
foreach ($folder in $folders.folder)
{
if ($folder.type)
{
if ($folder.type -eq $type)
{
return $folder.name.tostring()
}
}
}
}
我敢肯定,这个问题已经一切都与我如何解析XML,以及如何它实际上是有组织的记忆,但我无法弄清楚。任何帮助深表感谢。
非常感谢。那就是诀窍。我忘记了嵌入在XML中的一些条目。感谢您指出了这一点。 – todd1215