在 PowerShell 中將 XML 轉換為 CSV 檔案

Rohan Timalsina 2024年2月15日
  1. 在 PowerShell 中使用 Export-Csv 將 XML 轉換為 CSV
  2. 在 PowerShell 中使用 ConvertTo-Csv 將 XML 轉換為 CSV
在 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 檔案。

excel 中的 csv 檔案

作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell CSV

相關文章 - PowerShell XML