Ich bin neu zu gehen und zu versuchen, ein Skript zu schreiben, um eine SOAP-Antwort (derzeit als XML-Datei gespeichert) zu konvertieren und in CSV zu konvertieren.Konvertieren von XML in CSV
Hier ist eine Kopie meines xml
<?xml version="1.0" encoding="UTF-8" ?>
<Data>
<Results>
<Client>
<ID>72rere341</ID>
</Client>
<PartnerKey xsi:nil="true" />
<PartnerProperties>
<Name>email</Name>
<Value>[email protected]</Value>
</PartnerProperties>
<ID>755454475</ID>
<ObjectID xsi:nil="true" />
<UserID>5fd0acfc-6crerfrgrfe6e9a675f65</UserID>
<ActiveFlag>true</ActiveFlag>
<Delete>0</Delete>
<LastSuccessfulLogin>2014-11-07T16:00:46.747</LastSuccessfulLogin>
</Results>
<Results>
<Client>
<ID>72rere5341</ID>
</Client>
<PartnerKey xsi:nil="true" />
<PartnerProperties>
<Name>email</Name>
<Value>[email protected]</Value>
</PartnerProperties>
<ID>7225483</ID>
<ObjectID xsi:nil="true" />
<UserID>[email protected]</UserID>
<ActiveFlag>false</ActiveFlag>
<Delete>0</Delete>
<LastSuccessfulLogin>2015-04-29T05:01:27.85</LastSuccessfulLogin>
</Results>
</Data>
Hier ist eine Kopie meines Code ist
package main
import (
"encoding/xml"
"fmt"
"io/ioutil"
"log"
"os"
)
type AccountUser struct {
UserID string
ActiveFlag string
LastSuccessfulLogin string
//PartnerProperties Partner `xml:"PartnerProperties"`
}
type Partner struct {
Name string
Value string
}
type Query struct {
ResultList []AccountUser `xml:"Results"`
}
func main() {
xmlFile, err := os.Open("ActiveUsers.xml")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer xmlFile.Close()
b, err := ioutil.ReadAll(xmlFile)
if err != nil {
log.Fatal(err)
}
var q Query
err = xml.Unmarshal(b, &q)
if err != nil {
log.Fatal(err)
}
file, err := os.Create("result.csv")
checkError("Cannot create file", err)
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
for _, result := range q.ResultList {
err := writer.Write(result)
checkError("Cannot write to file", err)
}
}
func checkError(message string, err error) {
if err != nil {
log.Fatal(message, err)
}
}
Als ich das laufen, ich diesen Fehler:
./ActiveUsers.go:73:28: cannot use result (type AccountUser) as type []string in argument to writer.Write
I Ich habe das Gefühl, ich könnte dies in Bytes oder eine andere Datenstruktur umwandeln, aber ich bin mir nicht sicher, wie ich das machen soll.
Ich werde alle Hinweise zu diesem Thema schätzen.
Wo ist das XML? Niemand kann Ihnen helfen, ohne das XML zu sehen –
Entschuldigungen werden jetzt hinzugefügt –
@JimGarrison hinzugefügt –