【发布时间】:2014-04-02 14:57:56
【问题描述】:
我正在使用 Perl 脚本从 OSM 文件中提取 POLY:https://github.com/sev-/osm/blob/master/getbound.pl
最近遇到一个大文件(约60M)的问题:
curl -XPOST "http://overpass-api.de/api/interpreter" -d"data=[timeout:900];(node(56.59,60.0,56.99,60.96);<);out;" > e.osm
perl getbound.pl -file e.osm 1104258 > e.poly
>unclosed token at line 173936, column 2, byte 9999947 at /System/Library/Perl/Extras/5.16/darwin-thread-multi-2level/XML/Parser.pm line 187.
XML 文件格式正确,提到的行看起来很好,当我删除该行时,错误消息根本没有改变。看起来库中的某个字节计数器溢出了。
任何帮助将不胜感激! 谢谢
【问题讨论】:
-
不是 100% 但加载到内存的内存限制是多少? 60M不会超过限制吗?
-
将一个 60MB 的文件加载到内存中需要远远超过 60MB,但我怀疑这是问题所在。
-
Re“XML文件格式正确”,XML::Parser对此事有不同看法。
-
@ikegami xmlwf 说它格式正确
-
xmlwf 使用 expat,就像 XML::Parser 一样。所以你刚刚告诉我 expat 认为该文件是有效的,并且它认为不是。一种可能性是您测试了两个不同的文档。
标签: xml perl openstreetmap