我花了几个小时试图弄明白这一点,但我不明白为什么它只返回一个空字符串。如果我将响应体剪切并粘贴到一个变量上,然后删除?xml version=“1.0”encoding=“ISO-8859-1”?它很好用。
package main
import (
"encoding/xml"
"fmt"
"io/ioutil"
"net/http"
)
type entry struct {
XMLName xml.Name `xml:"entry"`
Title string `xml:"title"`
Link string `xml:"link"`
Summary string `xml:"summary"`
Updated string `xml:"updated"`
Catagory string `xml:"catagory"`
ID string `xml:"id"`
}
type Feed struct {
XMLName xml.Name `xml:"feed"`
Title string `xml:"title"`
Entry []entry `xml:"entry"`
}
func main() {
resp, err := http.Get("https://www.sec.gov/cgi-bin/browse-edgar?action=getcurrent&type=4&company=&dateb=&owner=include&start=0&count=2&output=atom")
if err != nil {
fmt.Println("Get sec main xml error: %s", err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
//fmt.Println(string(body))
var feedData Feed
xml.Unmarshal(body, &feedData)
fmt.Println(feedData.Title)
for _, entry := range feedData.Entry {
fmt.Println(entry.ID)
}
}
有人知道我在哪里犯了错误吗?谢谢你的帮助。
从codereak提供的链接中,答案是由moraes在“2015年更新答案”中给出的
package main
import (
"encoding/xml"
"fmt"
"golang.org/x/net/html/charset"
"net/http"
)
type entry struct {
XMLName xml.Name `xml:"entry"`
Title string `xml:"title"`
Link string `xml:"link"`
Summary string `xml:"summary"`
Updated string `xml:"updated"`
Catagory string `xml:"catagory"`
ID string `xml:"id"`
}
type Feed struct {
XMLName xml.Name `xml:"feed"`
Title string `xml:"title"`
Entry []entry `xml:"entry"`
}
func main() {
resp, err := http.Get("https://www.sec.gov/cgi-bin/browse-edgar?action=getcurrent&type=4&company=&dateb=&owner=include&start=0&count=2&output=atom")
if err != nil {
fmt.Println("Get sec main xml error: %s", err)
}
defer resp.Body.Close()
var feedData Feed
decoder := xml.NewDecoder(resp.Body)
decoder.CharsetReader = charset.NewReaderLabel
err = decoder.Decode(&feedData)
fmt.Println(feedData.Title)
for _, entry := range feedData.Entry {
fmt.Println(entry.ID)
}
}
非常感谢。
问题内容: 如果您的XML输入未使用UTF-8编码,则xml包的功能似乎需要一个。 你在哪里找到这样的东西? 问题答案: 更新了2015年及以后的答案:
问题内容: 我正在使用创建一个xml 在此上添加一些属性后,当我尝试打印它时,它看起来像这样, 有没有办法删除xml版本节点?谢谢 问题答案: 从理论上讲,您可以提供保存文档时删除XML声明的选项,但这仅在Libxml> = 2.6.21(和buggy)中可用。一种替代方法是使用
我目前正在使用JQuery mobile开发一个移动网站。我在我的foobar中使用了多个页面。html导航,如下所示: 我加载foobar。html文件,单击Go to Bar,即可正常工作;然而,当我从索引导航时。hmtl到foobar。html并再次测试,链接无法工作。刷新页面可以解决此问题。 如何解释这种行为以及如何修复它?
我正在为Android开发一个应用程序,在那里我必须解析不同的XML文件。其中大多数是用UTF-8编码的,但也有少数是用ISO-8859-1编码的。 我处理输入的代码如上所示。文档介绍了: 如果没有字符流,但有字节流,解析器将使用InputSource中指定的编码使用该字节流,或者(如果没有指定编码)使用XML规范中的算法自动检测字符编码。 我传递的是,但我没有指定编码,因此根据文档,编码应该被自
主要内容:ISO-8859-1,HTML 预留字符,ISO 8859-1 字符实体现代的浏览器支持的字符集: ASCII 字符集 标准 ISO 字符集 数学符号、希腊字母、其他符号 ISO-8859-1 ISO-8859-1 是大多数浏览器默认的字符集。 ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 ASCII 字符集(0-9 的数字,大写和小写英文字母表,以及一些特殊字符)。 ISO-8859-1 的较高部分(从 160 到 255 之间的代码)
问题内容: 我必须用Java处理这种情况: 我从声明了encoding = utf-8的客户端收到XML格式的请求。不幸的是,它可能不包含utf-8字符,并且有必要从我这一边的xml中删除这些字符(旧式)。 让我们考虑一个示例,其中该无效XML包含£(磅)。 1)我将xml作为带有£的java字符串(我现在无法访问接口,但我很可能将xml作为java的字符串)。我可以使用replaceAll(£,