python - 如何从 lxml.html.html5paser 元素标记内部删除 namespace 值

标签 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'

我发现的最简单的解决方案是使用正则表达式删除它,但是 也许可以根本不包含该文本?

最佳答案

有一个特定的 namespaceHTMLElements bool 标志控制此行为:

from lxml.html import html5parser
from html5lib import HTMLParser

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

关于python - 如何从 lxml.html.html5paser 元素标记内部删除 namespace 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35012693/

相关文章:

python - 复杂数据的曲线拟合

python - 如何从 Tensorflow 中的卡住模型(pb 文件)中找到 output_node_names?

java - 如何访问DRF服务器端的请求主体模型字段?

python - 重采样多索引 DataFrame

python - 来自 django 基本模板文件中 url 的变量

javascript - 无法让 event.charCode 工作

html - 在文本框中书写时出现下划线

xpath - 使用xpath选择另一个元素

python - lxml 使用 cssselector 检索奇怪的元素

html - 在XPath中的树上使用string()时如何在节点之间添加空格