Ho uno script che analizza XML utilizzando lxml.etree
:Come risolvere soggetti esterni con xml.etree come lxml.etree
from lxml import etree
parser = etree.XMLParser(load_dtd=True, resolve_entities=True)
tree = etree.parse('main.xml', parser=parser)
Ho bisogno load_dtd=True
e resolve_entities=True
essere hanno &emptyEntry;
da globals.xml
risolto:
<?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>
con globals.xml
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY emptyEntry "<entry></entry>">
Ora mi piacerebbe passare dallo standard lxml
allo standard xml.etree
. Ma questo non funziona con il mio file perché il load_dtd=True
e resolve_entities=True
non è supportato da xml.etree
.
C'è una via xml.etree
per risolvere queste entità?