如何从lxml.html.html5paser元素标记内删除命名空间值

时间:2016-01-26 11:23:07

标签: python html lxml html5lib

使用时是否可以不为标签添加命名空间 来自lxml.html包的html5parser?

示例:

from lxml import html
print(html.parse('http://example.com').getroot().tag)
# You will get 'html'

from lxml.html import html5parser
print(html5parser.parse('http://example.com').getroot().tag)
# You will get '{http://www.w3.org/1999/xhtml}html'

我找到的最简单的解决方案是使用正则表达式删除它,但是 也许它可能根本不包括那个文本?

1 个答案:

答案 0 :(得分:1)

有一个特定的namespaceHTMLElements布尔标志来控制这种行为:

from lxml.html import html5parser
from html5lib import HTMLParser

root = html5parser.parse('http://example.com', 
                         parser=HTMLParser(namespaceHTMLElements=False))    
print(root.tag)  # prints "html"