chiark / gitweb /
man: use xinclude to de-deduplicate common text
[elogind.git] / tools / xml_helper.py
index 08e226fa21fc589b6de935794689f8c83b259368..0d91a17bbc5189c57da498fdb76312915d147c2f 100644 (file)
 #  You should have received a copy of the GNU Lesser General Public License
 #  along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
-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)
 
+try:
     _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')
+    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')
+
 except ImportError:
     import xml.etree.ElementTree as tree
     import re as _re