diff options
Diffstat (limited to 'python/l10n/convert_xul_to_fluent/lib/dtd.py')
-rw-r--r-- | python/l10n/convert_xul_to_fluent/lib/dtd.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/python/l10n/convert_xul_to_fluent/lib/dtd.py b/python/l10n/convert_xul_to_fluent/lib/dtd.py new file mode 100644 index 0000000000..85348e62ff --- /dev/null +++ b/python/l10n/convert_xul_to_fluent/lib/dtd.py @@ -0,0 +1,28 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from __future__ import absolute_import +from io import StringIO +from lxml import etree +from .utils import read_file + + +def get_dtds(sources, base_path): + entries = {} + for source in sources: + dtd = get_dtd(source, base_path) + for entry in dtd: + entries[entry] = {"value": dtd[entry], "file": source} + return entries + + +def get_dtd(dtd_source, base_path): + entries = {} + + source = read_file(dtd_source, base_path) + + dtd = etree.DTD(StringIO(source.decode("utf-8"))) + for entity in dtd.entities(): + entries[entity.name] = entity.content + return entries |