]> git.ipfire.org Git - thirdparty/systemd.git/blob - tools/xml_helper.py
0383ef71879951b45b6bc9606ac885851aa3a77c
[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 if 'bpf-delegate' in url:
14 return self.resolve_filename('src/core/bpf-delegate.xml', context)
15
16 return None
17
18 _parser = tree.XMLParser()
19 # pylint: disable=no-member
20 _parser.resolvers.add(CustomResolver())
21
22 def xml_parse(page):
23 doc = tree.parse(page, _parser)
24 doc.xinclude()
25 return doc
26
27 def xml_print(xml):
28 return tree.tostring(xml, pretty_print=True, encoding='utf-8')