在 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
檔案。
相關文章 - PowerShell CSV
- 在 PowerShell 中將資料附加到 CSV 檔案
- 在 PowerShell 中合併 CSV 檔案
- 在 PowerShell 中把 CSV 檔案匯入陣列中
- 在 PowerShell 中將資料匯出為 CSV