2014-05-01 8 views
-1

J'ai le code XML suivant (coupé massivement) que j'ai besoin d'écrire dans un fichier csv dans PowerShell 3. Le code powershell en bas est à quelle distance je l'ai, il peut écrire tout le document XML dans la console mais n'écrit pas le xml dans le csv.Comment écrire xml dans un fichier CSV dans powershell 3?

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> 

Le 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

Vous devez toujours fournir un échantillon de travail. Le fichier XML est incomplet, et il vous manque un échantillon csv pour nous montrer à quoi le CSV devrait ressembler, étant donné que les éléments que vous voulez exporter en CSV incluent à la fois une valeur et des attributs. –

+0

désolé, j'ai fait une erreur sur le formatage du XML. réparé maintenant – user63565

Répondre

0

Essayez ceci:

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 
} 
Questions connexes