Hallo Zusammen,
Ich bräuchte aus einer SQL-Datenbank einen automatisierten XML-Export via PowerShell und da dachte ich an die WriteXml-Methode aus der DataSet-Klasse.
Mir ist bewusst, dass PS ein ConvertTo-XML CmdLet besitzt, allerdings macht dieses nicht das gewünschte Format.
Hier zuerst mein Ansatz:
Ein DataSet wird mittels DataAdapter-Fill-Methode befüllt und dieses produziert mir mithilfe der WriteXML-Methode das XML-File
$conn = New-Object System.Data.SqlClient.SqlConnection("....") $cmd = New-Object System.Data.SqlClient.SqlCommand("Select * FROM dbo.Tabelle", $conn) $da = New-Object System.Data.SqlClient.SqlDataAdapter($cmd) $ds = New-Object System.Data.DataSet $da.Fill($ds) $ds.DataSetName = "aa" $ds.Tables[0].TableName = "Table" $settings = New-Object System.Xml.XmlWriterSettings $settings.Encoding = [System.Text.Encoding]::UTF8 $settings.Indent = $true $xmlWriter = [System.Xml.XmlWriter]::Create("C:\Temp\bla.xml", $settings) $ds.WriteXml($xmlWriter) $xmlWriter.close()Jetzt die Frage:
Kann man dieser Klasse irgendwie das 'standalone="yes"'-Attribut mitgeben? Oder geht das nur mit Regex-Methoden?
Wenn ich die Überladung "WriteXml(String)" verwende bekomm ich zwar das Standalone, aber kein encoding="UTF-8" mehr.
Der Header muss nämlich so aussehen: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Sonst macht diese Methode alles wunderbar für meine Anforderungen.
Grüße
speedy