私はパースするためのスーパーシンプルなXMLファイルのセットを持っています...しかし...彼らはカスタム定義エンティティを使用します。これらを文字にマップする必要はありませんが、それぞれを解析して処理したいと考えています。たとえば:未知のXMLエンティティを解析するためのPython ElementTreeサポート?
<Style name="admin-5678">
<Rule>
<Filter>[admin_level]='5'</Filter>
&maxscale_zoom11;
</Rule>
</Style>
ありXMLParserのは、限られたエンティティをサポートしているhttp://effbot.org/elementtree/elementtree-xmlparser.htmで食欲をそそるヒントがあるが、私は言及した方法を見つけることができない、すべてがエラーを与える:
どのように依存#!/usr/bin/python
##
## Where's the entity support as documented at:
## http://effbot.org/elementtree/elementtree-xmlparser.htm
## In Python 2.7.1+ ?
##
from pprint import pprint
from xml.etree import ElementTree
from cStringIO import StringIO
parser = ElementTree.ElementTree()
#parser.entity["maxscale_zoom11"] = unichr(160)
testf = StringIO('<foo>&maxscale_zoom11;</foo>')
tree = parser.parse(testf)
#tree = parser.parse(testf,"XMLParser")
for node in tree.iter('foo'):
print node.text
コメントを調整できます:
xml.etree.ElementTree.ParseError: undefined entity: line 1, column 5
または
XMLは OpenStreetMapのMAPNIKプロジェクトからである好奇心が強い人のためにまたは
AttributeError: 'str' object has no attribute 'feed'
。
おそらく関連する質問:その場合には実体が実際に定義されているためhttp://stackoverflow.com/questions/2524299/entity-references-and-lxml – unutbu
、関係ありません。エンティティ定義を削除すると、私の質問に戻ります。 – Bryce
fyi - 誰かが/ usr/bin/pythonを/ usr/bin/env pythonに修正したい場合があります。ほとんどのシステムではshebang行が間違っているからです。 –