blob: 85348e62ff2eac6e23f4a7396c3ec5f0924da244 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
|