我正在使用lxml v4.4.1
当我解析使用名称空间前缀(例如xmlns:mml="http://www.w3.org/1998/Math/MathML"
)的MathML文档时,元素和属性名称都以“ {{http://www.w3.org/1998/Math/MathML}””作为前缀。
示例1:
from lxml import etree
XML1 = """<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" mml:display="block"/>"""
math = etree.XML(XML1)
print(math.tag)
print(math.attrib)
# {http://www.w3.org/1998/Math/MathML}math
# {'{http://www.w3.org/1998/Math/MathML}display': 'block'}
但是,当我使用默认名称空间(例如:xmlns="http://www.w3.org/1998/Math/MathML"
)时,MathML名称空间没有属性前缀。
示例2:
XML2 = """<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"/>"""
math = etree.XML(XML2)
print(math.tag)
print(math.attrib)
# {http://www.w3.org/1998/Math/MathML}math
# {'display': 'block'} # <-- WRONG
是错误吗?该如何解决?