Tôi đã một kịch bản mà phân tích cú pháp XML sử dụng lxml.etree
:Làm thế nào để giải quyết thực thể bên ngoài với xml.etree như lxml.etree
from lxml import etree
parser = etree.XMLParser(load_dtd=True, resolve_entities=True)
tree = etree.parse('main.xml', parser=parser)
Tôi cần load_dtd=True
và resolve_entities=True
thể đã &emptyEntry;
từ globals.xml
giải quyết:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE map SYSTEM "globals.xml" [
<!ENTITY dirData "${DATADIR}">
]>
<map
xmlns:map="http://my.dummy.org/map"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsschemaLocation="http://my.dummy.org/map main.xsd"
>
&emptyEntry; <!-- from globals.xml -->
<entry><key>KEY</key><value>VALUE</value></entry>
<entry><key>KEY</key><value>VALUE</value></entry>
</map>
với globals.xml
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY emptyEntry "<entry></entry>">
Bây giờ tôi muốn chuyển từ phi tiêu chuẩn lxml
thành tiêu chuẩn xml.etree
. Nhưng điều này không thành công với tệp của tôi vì load_dtd=True
và resolve_entities=True
không được hỗ trợ bởi xml.etree
.
Có một số xml.etree
để các thực thể này được giải quyết không?