X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=tools%2Fxml_helper.py;h=e87126f2f77fe7dc4cf7c4a4ec91d7ffafbdea05;hp=08e226fa21fc589b6de935794689f8c83b259368;hb=2ea8c08306c7e33f8217a878cf990fc491c9432c;hpb=3c3e5f4276a893791110b03984735654372aa33a;ds=sidebyside diff --git a/tools/xml_helper.py b/tools/xml_helper.py index 08e226fa2..e87126f2f 100644 --- a/tools/xml_helper.py +++ b/tools/xml_helper.py @@ -17,25 +17,18 @@ # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see . -try: - from lxml import etree as tree +from lxml import etree as tree - class CustomResolver(tree.Resolver): - def resolve(self, url, id, context): - if 'custom-entities.ent' in url: - return self.resolve_filename('man/custom-entities.ent', context) +class CustomResolver(tree.Resolver): + def resolve(self, url, id, context): + if 'custom-entities.ent' in url: + return self.resolve_filename('man/custom-entities.ent', context) - _parser = tree.XMLParser() - _parser.resolvers.add(CustomResolver()) - xml_parse = lambda page: tree.parse(page, _parser) - xml_print = lambda xml: tree.tostring(xml, pretty_print=True, - encoding='utf-8') -except ImportError: - import xml.etree.ElementTree as tree - import re as _re - import io as _io - - def xml_parse(page): - s = _re.sub(b'&[a-zA-Z0-9_]+;', b'', open(page, 'rb').read()) - return tree.parse(_io.BytesIO(s)) - xml_print = lambda xml: tree.tostring(xml, encoding='utf-8') +_parser = tree.XMLParser() +_parser.resolvers.add(CustomResolver()) +def xml_parse(page): + doc = tree.parse(page, _parser) + doc.xinclude() + return doc +def xml_print(xml): + return tree.tostring(xml, pretty_print=True, encoding='utf-8')