0
こんにちはStackOverFLowers!私は、次からXMLを抽出しようとしているGOLang:XMLを抽出する問題
コード:それは基本的に私を与えたファイルからデータを抽出していないいくつかの理由について
package main
import (
"fmt"
"encoding/xml"
"net/http"
"log"
"io/ioutil"
"encoding/json"
)
type reportType struct{
Course xml.CharData `xml:"course"`
Crn xml.CharData `xml:"crn"`
Id xml.CharData `xml:"course>id"`
Section xml.CharData `xml:"course>section`
Title xml.CharData `xml:"course>title`
}
type myErrorType struct{
TypeOfError xml.CharData `xml:"type"`
Desciption xml.CharData `xml:"description"`
}
type reportTypeJson struct{
Course string `json:"course"`
Crn string `json:"crn"`
Id string `json:"id"`
Section string `json:"section`
Title string `json:"title`
course map[string]string `json:"course"`;
}
func main() {
baseURL := "http://turing.cs.missouriwestern.edu/classes/csc346/final/?crn=13398";
var query string
query = baseURL
fmt.Println("The escaped query: "+query)
response, err := http.Get(query)
doErr(err, "After the GET")
var body []byte
body, err = ioutil.ReadAll(response.Body)
fmt.Println(body);
doErr(err, "After Readall")
stringOfBody := string(body[:500])
fmt.Printf("TASK 1: The body(as text): %s\n",stringOfBody)
//Unmarshalling
var report reportType
xml.Unmarshal(body, &report)
fmt.Printf("The Report: %s\n", report)
//Now marshal the data out in JSON
var data []byte
var output reportTypeJson
output.Course=string(report.Course)
output.Crn=string(report.Crn)
output.Id=string(report.Id)
output.Section=string(report.Section)
output.Title=string(report.Title)
//var output reportType
//output.Version = string(report.Version);
//report.Version -> output.Version
//output.TermsOfService = string(report.TermsOfService)
data,err = json.MarshalIndent(output,""," ")
doErr(err, "From marshalIndent")
fmt.Printf("JSON output nicely formatted: \n%s\n",data)
fmt.Println("CRN: %v\n",report.Crn)
fmt.Println("ID: %v\n",report.Id)
fmt.Println("Section: %v\n",report.Section)
fmt.Println("Title: %v\n",report.Title)
fmt.Println("Course: %v\n",report.Course)
fmt.Println("ID: %v\n",report.Id)
}
func doErr(err error, message string){
if err != nil{
log.Panicf("ERROR: %s %s \n", message, err.Error())
}
}
空白のレポート。私はこのようなプログラムを文字通り2日前に作って同じフォーマットに従っていますが、どこが間違っているのか分かりません。
OUTPUT:
The Report: { }
JSON output nicely formatted:
{
"course": "",
"crn": "",
"id": "",
"Section": "",
"Title": ""
}
任意およびすべてのヘルプははるかに高く評価され、私は数時間でテストを持っていると私はそれまでにいくつかのガイダンスのために願っています!ありがとう!