我在解析 SEC Edgar files 时遇到问题
Here is an example of this file .
最终结果是我想要 <XML>
之间的东西和 </XML>
转换成我可以访问的格式。
这是我目前无法运行的代码:
scud = open("http://sec.gov/Archives/edgar/data/1475481/0001475481-09-000001.txt")
full = scud.read
full.match(/<XML>(.*)<\/XML>/)
最佳答案
好吧,有两点不对:
- sec.gov/Archives/edgar/data/1475481/0001475481-09-000001.txt 不是 XML,因此 Nokogiri 对您没有用,除非您从文件顶部去除所有垃圾,向下到真正的 XML 开始的地方,然后剪掉尾随的标签以保持 XML 正确。所以,你需要先解决这个问题。
- 你没有说你想从文件中得到什么。没有这些信息,我们无法推荐真正的解决方案。您需要花更多时间更好地定义问题。
下面是一段快速代码,用于检索页面、去除垃圾并将生成的内容解析为 XML:
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::XML(
open('http://sec.gov/Archives/edgar/data/1475481/0001475481-09-000001.txt').read.gsub(/\A.+<xml>\n/im, '').gsub(/<\/xml>.+/mi, '')
)
puts doc.at('//schemaVersion').text
# >> X0603
关于ruby - 使用 Ruby 将 SEC Edgar XML 文件解析为 Nokogiri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5838916/