2014-05-01 28 views
-1

我有以下XML代碼(大量減少),我需要寫入PowerShell 3中的csv文件。底部的powershell代碼是我得到了多少,它可以將整個XML文檔寫入控制檯但不會將xml寫入csv。如何在PowerShell 3中將xml寫入CSV文件?

的XML

<?xml version="1.0" encoding="utf-8"?> 
<DataReport> 
    <ApiKeyId>1521</ApiKeyId> 
    <Timestamp>2014-05-01 11-06-42</Timestamp> 
<DataReportContent> 
<Row><RowTypeCode RowTypeId="3297" Label="The University of Edinburgh">10007790</RowTypeCode> 
    <Year Id="10" Label="2009/10" /> 
    <Value ValueTypeId="3517-3508">9592</Value><FieldCode FieldId="4502" Label="Undergraduate">2</FieldCode> 
    <FieldCode FieldId="6271" Label="Female">2</FieldCode> 
</Row> 
</DataReportContent> 
</DataReport> 

PowerShell的

[xml]$Xmlvar = Get-Content C:\Users\dantrobus\documents\csvfile.csv 
$rows = $Xmlvar.DataReport.DataReportContent.row 
foreach ($row in $rows) 
{ 
    write-host $row.RowTypeCode,$row.year,$row.FieldCode 
    Export-Csv -path C:\Users\dantrobus\documents\csvfile.csv -InputObject $row.RowTypeCode,$row.year,$row.FieldCode -append 
} 
+0

你應該總是提供一個工作的樣本。 Xml文件是不完整的,並且你錯過了一個csv-sample向我們展示了csv應該是什麼樣子,考慮到你想要導出到csv的元素包括一個值和屬性。 –

+0

對不起,我在XML的格式上犯了一個錯誤。現在修復它 – user63565

回答

0

試試這個:

foreach ($row in $rows) 
{ 
    # next line is for debug only, so you can see what's being processed 
    # in the console window 
    $row.RowTypeCode,$row.year,$row.FieldCode 

    # this line pipes the objects for processing 
    $row.RowTypeCode,$row.year,$row.FieldCode | 
    Export-Csv -path C:\Users\dantrobus\documents\csvfile.csv -append -NoTypeInformation 
}