【问题标题】:PowerShell XML Parsing & ExportPowerShell XML 解析和导出
【发布时间】:2013-03-27 05:52:39
【问题描述】:

我是使用 PowerShell 的新手,刚刚加入了 stackoverflow。 我有一个项目正在尝试解析 XML 文件并将一些特定节点导出到 csv 文件。 我需要从文件中的多个条目导出的*<group>name"unique name"* 和成员任务# 导出到.csv。

XML 文件类似于下面的示例,其中包含组名和关联任务# 的多个条目:

<settings><tasks><groups>
<Group Name="some name">
<Notes>Some notes here</Notes>
<Member t="task">159711687</Member>
<Member t="task">584643293</Member>
<Member t="task">465828474</Member>
<Member t="task">262255905</Member>
<Member t="task">121466829</Member>
<Member t="task">257067112</Member>
</Group>

<Group Name="some name 2">
<Notes>Testing</Notes>
<Member t="task">865485927</Member>
<Member t="task">363897901</Member>
<Member t="task">848275733</Member>
<Member t="task">471573148</Member>
<Member t="task">312701058</Member>
<Member t="task">667795378</Member>
<Member>160178363</Member>
<Member>149985003</Member>
</Group>

目前为止

$xml = [xml] (gc "\\servername\path\to\file.xml")
$xml.settings.tasks.groups.group

我也试过| select member -expandproperty member 但它没有正确返回格式,显然也没有返回名称。

我也试过基本的|格式列表名称,成员 和格式表也几乎没有结果。

任何指向这个新手正确方向的指针都会有所帮助。

提前致谢。

【问题讨论】:

    标签: powershell xml-parsing


    【解决方案1】:

    你正朝着正确的方向前进。您只需要记住您的元素引用(代码中的第二行)实际上返回了一个元素数组。一旦你有了数组,你只需要像这样遍历它:

    [xml]$xml = gc .\groups.xml
    $groups = $xml.settings.tasks.groups.Group  # $groups is an array of Group elements
    foreach($i in $groups) {
        write-output $i.Name         # get the Name attribute for each Group element
        foreach($j in $i.Member) {   # $i.Member is an array of Member for each Group element
            write-output $j."#text"  # get the text contained in each Member element
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-08-04
      • 2010-12-15
      • 2020-12-30
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多