在 PowerShell 中将 XML 转换为 CSV 文件
可扩展标记语言 (XML) 文件是使用自定义标签定义文档结构的纯文本文件。它主要用于存储和共享结构化信息。
XML 文件的内容与 HTML 文件类似。
逗号分隔值 (CSV) 文件是一个带分隔符的文本文件,它允许以表格格式存储数据。每个值都由分隔符逗号
或任何其他字符分隔。
本教程将教你在 PowerShell 中将 XML 文件转换为 CSV。
在 PowerShell 中使用 Export-Csv
将 XML 转换为 CSV
Export-Csv
cmdlet 创建对象的 CSV 文件。它将对象转换为一系列 CSV 字符串并将它们保存到文件中。
我们创建了一个 XML 文件 website.xml
。
<?xml version="1.0" encoding="UTF-8"?>
<website>
<site name="DelftStack">
<content>Programming Tutorials</content>
<topic>PowerShell Howtos</topic>
<article>How to convert XML into CSV?</article>
</site>
<site name="DelftStack">
<content>Programming Tutorials</content>
<topic>Linux Howtos</topic>
<article>Delete Files Recursively in Linux</article>
</site>
</website>
你可以使用以下命令将 XML 文件转换为 CSV 文件。
[xml]$inputFile = Get-Content "C:\New\website.xml"
$inputFile.website.ChildNodes | Export-Csv "C:\New\website.csv" -NoTypeInformation -Delimiter:"," -Encoding:UTF8
Get-Content
cmdlet 获取 C:\New\website.xml
文件的内容。内容对象沿管道发送到 Export-Csv
cmdlet。
Export-Csv
将内容对象转换为一系列 CSV 字符串并将这些字符串保存到 C:\New\website.csv
文件中。 -Delimiter
参数指定分隔符以分隔 CSV 字符串中的属性值。
例如,,
、;
、:
等。 -Encoding
参数定义导出的 CSV 文件的编码。
查看 C:\New\website.csv
的内容。
Get-Content "C:\New\website.csv"
输出:
"name","content","topic","article"
"DelftStack","Programming Tutorials","PowerShell Howtos","How to convert XML into CSV?"
"DelftStack","Programming Tutorials","Linux Howtos","Delete Files Recursively in Linux"
在 PowerShell 中使用 ConvertTo-Csv
将 XML 转换为 CSV
ConvertTo-Csv
cmdlet 将对象转换为 CSV 字符串,但不将字符串保存到文件中。你可以使用 Set-Content
cmdlet 将 CSV 字符串写入文件。
Set-Content
是一个字符串处理 cmdlet,用于写入新内容或替换文件中的内容。
[xml]$inputFile = Get-Content "C:\New\website.xml"
$inputFile.website.ChildNodes | ConvertTo-Csv -NoTypeInformation -Delimiter ";" | Set-Content "C:\New\new.csv" -Encoding UTF8
内容对象沿管道发送到 ConvertTo-Csv
cmdlet。ConvertTo-Csv
将内容对象转换为一系列 CSV 字符串。
字符串沿管道发送到 Set-Content
cmdlet。Set-Content
将 CSV 字符串写入 C:\New\new.csv
文件。
Get-Content "C:\New\new.csv"
输出:
"name";"content";"topic";"article"
"DelftStack";"Programming Tutorials";"PowerShell Howtos";"How to convert XML into CSV?"
"DelftStack";"Programming Tutorials";"Linux Howtos";"Delete Files Recursively in Linux"
你可以使用 MS-Excel 或类似程序以表格格式查看 .csv
文件。
相关文章
在 Windows PowerShell 中获取命令行参数
发布时间:2024/03/04 浏览次数:358 分类:编程语言
-
本文将解释我们如何使用 PowerShell 的参数函数处理命令行参数,参数如何工作,我们如何使用 PowerShell 参数将值传递给参数,以及定义参数的基本方法是什么。
Windows PowerShell 中的 Base64 编码
发布时间:2024/03/04 浏览次数:332 分类:编程语言
-
本文将展示如何编码和解码 base64 字符串。Windows PowerShell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。
在 Windows PowerShell 中写入输出
发布时间:2024/03/04 浏览次数:259 分类:编程语言
-
本文将向你展示如何在 Windows PowerShell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。
在 Windows PowerShell 中设置 PATH 环境变量
发布时间:2024/03/04 浏览次数:350 分类:编程语言
-
本文将展示在 Windows PowerShell 中设置路径环境变量的正确方法。本文还展示了如何在持久性和非持久性方法中设置变量。
在 Windows PowerShell 中打印环境变量
发布时间:2024/03/04 浏览次数:869 分类:编程语言
-
本文将讨论什么是环境变量以及如何使用多个 Windows PowerShell 命令打印它们。
在 PowerShell 中注释代码
发布时间:2024/03/04 浏览次数:363 分类:编程语言
-
本文将展示在 Windows PowerShell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。
在 PowerShell 中执行 LDAP 查询
发布时间:2024/03/04 浏览次数:304 分类:编程语言
-
本文将深入了解如何使用 Active Directory 过滤器和 LDAP 过滤器。