Mam skrypt, który analizuje kod XML za pomocą lxml.etree
:Jak rozwiązać podmioty zewnętrzne z xml.etree jak lxml.etree
from lxml import etree
parser = etree.XMLParser(load_dtd=True, resolve_entities=True)
tree = etree.parse('main.xml', parser=parser)
muszę load_dtd=True
i resolve_entities=True
być już &emptyEntry;
z globals.xml
rozwiązany:
<?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>
z globals.xml
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY emptyEntry "<entry></entry>">
Teraz chciałbym przejść z niestandardowego lxml
do standardowego xml.etree
. Ale to nie powiedzie się z moim plikiem, ponieważ load_dtd=True
i resolve_entities=True
nie jest obsługiwany przez xml.etree
.
Czy istnieje xml.etree
-strona, aby te jednostki zostały rozwiązane?