]> git.ipfire.org Git - thirdparty/systemd.git/blob - tools/xml_helper.py
6f71350f5b8dcbf409f2db71325eac2bd09a59a1
[thirdparty/systemd.git] / tools / xml_helper.py
1 #!/usr/bin/env python3
2 # SPDX-License-Identifier: LGPL-2.1-or-later
3
4 from lxml import etree as tree
5
6
7 class CustomResolver(tree.Resolver):
8 def resolve(self, url, _id, context):
9 if 'custom-entities.ent' in url:
10 return self.resolve_filename('man/custom-entities.ent', context)
11 if 'ethtool-link-mode' in url:
12 return self.resolve_filename('src/shared/ethtool-link-mode.xml', context)
13
14 return None
15
16 _parser = tree.XMLParser()
17 # pylint: disable=no-member
18 _parser.resolvers.add(CustomResolver())
19
20 def xml_parse(page):
21 doc = tree.parse(page, _parser)
22 doc.xinclude()
23 return doc
24
25 def xml_print(xml):
26 return tree.tostring(xml, pretty_print=True, encoding='utf-8')