文档 \ "<?xml version='1.0'?>\n" 没有有效的根目录



我是解析ruby中xml的新手,遇到了一个问题。我会尽力解释的。我从一个api 得到以下响应

"PKx03x04x14x00bbbx00,x18ETx00x00x00x00x00x00x00x00x00x00x00x00x1Dx00x00x00"

我相信它是.tds格式。我正试图将其解析为一个有效的xml,所以这就是我所尝试的。

xml=Nokogiri::xml(响应(这给了我#<Nokogiri::XML::Document:0xf744 name="document">

然后我试着做Hash.from_xml(xml.to_xml)

但这会抛出错误The document "<?xml version='1.0'?>\n" does not have a valid root

知道我在这里错过了什么吗?

此字符串以"PK";,它们是ZIP格式的作者Phil Katz的首字母缩写。这意味着它是一个ZIP文件。有些格式是ZIP文件,但实际上遵循了一些进一步的结构约定,如Java JAR文件,也包括所有OpenDocument格式,如.ods、.odt和所有MS Office Open XML格式。

由于您可能正在期待一个.ods文件。。。虽然您可以解压缩它,然后使用Nokogiri来解析XML,但有一种更好的方法可以继续。

有一个有趣的Gem叫Roo,它支持所有最常见的电子表格格式,并生成一个很好的Ruby API来处理它们:https://github.com/roo-rb/roo

我建议您将字符串保存到一个临时文件中,然后用Roo打开它。

最新更新