From: Petter Reinholdtsen Date: Thu, 15 Oct 2015 09:55:00 +0000 (+0200) Subject: Filter input using xmllint to get entities resolved. X-Git-Tag: edition-2015-10-15~11 X-Git-Url: https://pere.pagekite.me/gitweb/text-free-culture-lessig.git/commitdiff_plain/d418708d8f8e2a915e9df44fbda0d99563220fd4 Filter input using xmllint to get entities resolved. --- diff --git a/scripts/verify-indexterm-range b/scripts/verify-indexterm-range index 19a31a1..8dd8595 100755 --- a/scripts/verify-indexterm-range +++ b/scripts/verify-indexterm-range @@ -5,9 +5,18 @@ # are unique. from lxml import etree +import subprocess + def main(): filename = 'freeculture.xml' - doc = etree.parse(filename) + + # make sure entities are looked up / available + # Based on idea from + # http://stackoverflow.com/questions/14731633/how-to-resolve-external-entities-with-xml-etree-like-lxml-etree + proc = subprocess.Popen(['xmllint','--noent',filename],stdout=subprocess.PIPE) + output = proc.communicate()[0] + doc = ElementTree.parse(StringIO.StringIO(output)) + ids = {} order = 0 for it in doc.getroot().xpath('//indexterm'):