在处理了 3 个小时之后,我能够从数据中创建一个可解析的 XML 文档。不幸的是,我没有成功地整理出一套完全可重复使用的步骤,这些步骤可以用于未来的拍卖出版物。
顺便说一句,我确实尝试打电话询问洛杉矶县他们是否可以提供可供拍卖的房产的替代格式(excel等),答案是否定的。那是你的政府。
这是我的方法的高级视图:
我使用http://xmlbeautifier.com/作为我的 XML 美化器/验证器,因为它速度很快,并且可以提供准确的错误报告,包括行号。
使用Homebrew为 Mac 安装 Poppler:
brew install poppler
安装 Poppler 后,您应该可以访问 pdftotext 实用程序来转换 PDF:
pdftotext -layout -f 24 -l 687 AuctionBook2013.pdf auction_book.txt
这是 XML 的预览(单击此处查看完整的 XML):
<?xml version="1.0" encoding="UTF-8"?>
<listings>
<item id="1">
<nsb>536</nsb>
<minbid>3,422</minbid>
<apn>2006 003 001</apn>
<delinquent_year>03</delinquent_year>
<apn_old>2006 003 001</apn_old>
<description>LICENSED SURVEYOR'S MAP
AS PER BK 25 PG 28 OF L S LOT 1
BLK 1 ASSESSED TO J AND S
LIMITED LLC C/O DUNA CSARDAS -
JULIUS JANCSO LOCATION COUNTY OF
LOS ANGELES</description>
<address>VACANT LOT</address>
</item>
编辑:添加我编写的 Ruby 以将 XML 转换为 CSV。
require 'rexml/document'
require 'CSV'
class Auction
def initialize
f = File.new('AuctionBook2013.xml', 'r')
doc = REXML::Document.new(f)
CSV.open("auction.csv", "w+b") do |csv|
csv << ['id', 'minbid', 'apn', 'delinquent_year', 'apn_old', 'description', 'address']
doc.elements.each('/listings/item') do |item|
csv << [item.attributes['id'],
item.elements['minbid'].text,
item.elements['apn'].text,
item.elements['delinquent_year'].text,
item.elements['apn_old'].text,
item.elements['description'].text,
item.elements['address'].text]
end
end
end
end
a = Auction.new()
链接到最终 CSV