Канонизация XML с использованием Python 3 - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь написать метод канонизации xml usign python 3.6

На данный момент у меня есть эта функция, которая получает XML как параметр, закодированный в base64, поэтому я должен декодировать его, чтобы иметь возможность работать с ним

def canonicalize(xml, c14n_exc=True):
    "Return the canonical (c14n) form of the xml document for hashing"
    # UTF8, normalization of line feeds/spaces, quoting, attribute ordering...
    xml_decoder = base64.b64decode(xml).decode("utf-8")
    output = StringIO()

    if xml_decoder is not None:
        # use faster libxml2 / lxml canonicalization function if available
        et = lxml.etree.parse(StringIO(xml_decoder))
        et.write_c14n(output, exclusive=c14n_exc)
    #else:
        # use pure-python implementation: c14n.py (avoid recursive import)
        #from .simplexml import SimpleXMLElement
        #SimpleXMLElement(xml).write_c14n(output, exclusive=c14n_exc)
    return output.getvalue()

проблема в том, что я получаю следующую ошибку valueError:: "ожидается строковый аргумент, получены байты" при оценке

Есть идеи, что я делаю не так?

Спасибо

...