PowerShell - 将 XML 转换为 CSV 文件
使用 PowerShell 中的 Export-CSV 和 ConvertTo-CSV cmdlet,您可以将 XML 文件转换为 CSV 文件。
XML(可扩展标记语言)是一种类似于 HTML 的标记语言,您可以在其中定义自己的标记来存储和传输数据。它是人类可读和机器可读的,并且可以轻松解析。
CSV(逗号分隔值)文件以表格格式存储数据,其中每个值均由分隔符逗号、半列或任何其他字符分隔。
在本文中,我们将讨论如何使用 Export-CSV 和 ConvertTo-CSV cmdlet 将 XML 转换为 CSV 文件。
PowerShell - 使用 Export-CSV 将 XML 转换为 CSV
PowerShell 中的 Export-CSV cmdlet 根据对象的输入创建 CSV 文件,并将 CSV 文件导出到指定位置。
让我们考虑一个在 PowerShell 中将 XML 转换为 CSV 的示例。
Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books.xml在上面的 PowerShell 脚本中,我们使用 Get-Content cmdlet 读取 XML 文件内容并显示它。
上述命令的输出是:
PS D:\> Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books.xml <?xml version="1.0"?>
<catalog>
<book id="b101">
<author>ShellGeek</author>
<title>PowerShell Guide</title>
<genre>Programming</genre>
<price>50</price>
<publish_date>2022-01-01</publish_date>
<description>Master the PowerShell in 30 days</description>
</book>
<book id="b102">
<author>Microsoft</author>
<title>Windows PowerShell</title>
<genre>Programming</genre>
<price>25</price>
<publish_date>2021-12-16</publish_date>
<description>Step by Step Windows PowerShell</description>
</book>
</catalog>
PS D:\> 将 XML 文件内容存储在变量 $xmlFile 中。在XML中,XML文件中的每个元素都是一个元素节点。
要将 XML 文件转换为 CSV 文件,我们需要将其遍历到 XML 子节点,并将其作为输入传递给 PowerShell 中的 Export-CSV 命令。
Export-CSV 命令将 XML 节点作为输入,从 XML 子节点创建 CSV 文件,并将它们导出到带有逗号分隔符的 CSV 文件。
$xmlFile = Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books.xml
$xmlFile.catalog.ChildNodes | Export-Csv -Path D:\LogTest\FTP-02\PowerShell_Books.csv -NoTypeInformation -Delimiter:"," 使用 Export-CSV cmdlet 将 XML 输出到 CSV 文件的上述 PowerShell 脚本的输出为:
在上面的输出中,它将 XML 导出到 CSV 文件,并使用 Get-Content 命令读取 CSV 文件并在 PowerShell 终端上显示信息。
酷提示:如何使用 PowerShell 将大文件拆分为较小的文件!
PowerShell XML 转换为 CSV 文件
使用 PowerShell 中的 ConvertTo-CSV cmdlet,您可以将 XML 文件转换为 CSV 文件。
我们将引用上面示例中使用的 PowerShell_Books.xml 文件。此 XML 文件包含有关图书的信息。
要将图书 XML 节点的 XML 转换为 CSV 文件,请使用 ConvertTo-CSV 命令,如下所示。
$xmlFile = Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books.xml
$xmlFile.catalog.ChildNodes | ConvertTo-Csv -NoTypeInformation -Delimiter:"," | Set-Content -Path D:\LogTest\FTP-02\PowerShell_Books_2.csv
Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books_2.csv 在上面的 PowerShell 脚本中,Get-Content 命令读取 XML 文件内容并将其存储在 $xmlFile 变量中。
此 $xmlFile 变量包含整个 XML 节点,并将它们作为输入传递给 ConvertTo-CSV 命令,该命令使用 CSV 文件的 Delimeter 字符逗号。然后,它将 CSV 文件内容传递给 Set-Content 以将其写入指定的文件路径。
使用 ConvertTo-CSV 命令将 XML 节点导出为 CSV 的上述 PowerShell 脚本的输出为:
酷提示:如何使用 PowerShell 导出文件名中包含日期的 CSV!
结论
我希望上面关于如何使用 Export-CSV 和 ConvertTo-CSV 文件将 XML 转换为 CSV 文件的文章对您有所帮助。
您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

