Tôi có một tập hợp các tệp XML siêu đơn giản để phân tích cú pháp ... nhưng ... chúng sử dụng các thực thể được xác định tùy chỉnh. Tôi không cần phải vẽ bản đồ cho các nhân vật, nhưng tôi muốn phân tích và hành động theo từng nhân vật. Ví dụ:Hỗ trợ Python ElementTree để phân tích các thực thể XML không xác định?
<Style name="admin-5678">
<Rule>
<Filter>[admin_level]='5'</Filter>
&maxscale_zoom11;
</Rule>
</Style>
Có một gợi ý trêu ngươi tại http://effbot.org/elementtree/elementtree-xmlparser.htm rằng XMLParser đã hạn chế hỗ trợ tổ chức nào, nhưng tôi không thể tìm ra các phương pháp đã đề cập, tất cả mọi thứ cho lỗi:
#!/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
nào tùy thuộc vào cách bạn điều chỉnh các ý kiến đưa ra:
xml.etree.ElementTree.ParseError: undefined entity: line 1, column 5
hoặc
AttributeError: 'ElementTree' object has no attribute 'entity'
hoặc
AttributeError: 'str' object has no attribute 'feed'
Đối với những người tò mò XML là từ 's mapnik dự án OpenStreetMap.
Có thể liên quan câu hỏi: http://stackoverflow.com/questions/2524299/entity-references-and-lxml – unutbu
Không liên quan, bởi vì trong trường hợp đó, thực thể được thực sự xác định. Xóa định nghĩa đối tượng và bạn quay lại câu hỏi của tôi. – Bryce
fyi - ai đó có thể muốn sửa/usr/bin/python thành/usr/bin/env python vì dòng shebang là sai đối với hầu hết các hệ thống. –