コンテンツへスキップ

PowerShell でCSV ファイルからXML ファイルへ変換する。

PowerShell でCSV ファイルからXML ファイルへ変換する。

コマンドを使ってインポートする

コパイロットさんの解。

PowerShellを使ってCSVファイルをXML形式に変換する方法を説明しますね。以下の手順に従ってください。

PowerShellを使ってCSVファイルをXML形式に変換する方法を説明しますね。以下の手順に従ってください。

  1. CSVファイルをインポート:$csvData = Import-Csv -Path “path\to\your\file.csv”
  2. CSVデータをXMLに変換:$xmlData = $csvData | ConvertTo-Xml -As Document
  3. XMLデータをファイルに保存:$xmlData.Save(“path\to\your\file.xml”)

何か他にお手伝いできることがあれば教えてくださいね。

ConvertTo-Xml

サンプルで出力してみる。

sample.csv(変換元)

attr1,attr2
test1a,	test2a
test2a,	test2b
test3a,	test3b
test4a,	test4b
test5a,	test5b
test6a,	test6b
test7a,	test7b
test8a,	test8b
test9a,	test9b
test10a,test10b

sample-out.xml(変換後)

<Objects>
<Object Type="System.Management.Automation.PSCustomObject">
<Property Name="attr1" Type="System.String">test1a</Property>
<Property Name="attr2" Type="System.String">test2a</Property>
</Object>
<Object Type="System.Management.Automation.PSCustomObject">
<Property Name="attr1" Type="System.String">test2a</Property>
<Property Name="attr2" Type="System.String">test2b</Property>
</Object>
<Object Type="System.Management.Automation.PSCustomObject">
<Property Name="attr1" Type="System.String">test3a</Property>
<Property Name="attr2" Type="System.String">test3b</Property>
</Object>

(中略)

</Object>
</Objects>

思ってたのと違うので、「foreach」でCSV の値を処理する

unimoniのアバター

ちょと思ってたのと違うので、
テキストを成型するような感じでやってみた。

aaa.ps1

function aaa{
	
# CSVファイルのパスを設定
$csvPath = "sample.csv";

# CSVファイルを読み込む
$tests = Import-Csv -Path $csvPath;

 write-output "<test>";
 
	foreach ($test in $tests){
		write-output "	<test-sub>";
			$String1="		<attr1>" + $test.attr1 + "</attr1>";
			$String2="		<attr2>" + $test.attr2 + "</attr2>";
			write-output $String1;
			write-output $String2;
		write-output "	</test-sub>";
	}
	
 write-output "</test>";

}

aaa | Tee-Object -FilePath "output.xml";

aaa.ps1 をCSV が保存されているフォルダで実行する。
(または、CSVとXML ファイルの位置を絶対パスで定義する。)

<test>
        <test-sub>
                <attr1>test1a</attr1>
                <attr2>test2a</attr2>
        </test-sub>
        <test-sub>
                <attr1>test2a</attr1>
                <attr2>test2b</attr2>
        </test-sub>
        <test-sub>
                <attr1>test3a</attr1>
                <attr2>test3b</attr2>
        </test-sub>
        <test-sub>
                <attr1>test4a</attr1>
                <attr2>test4b</attr2>
        </test-sub>

(中略)

</test>
(Visited 8 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です