Nat*_*han 5 html python xml namespaces elementtree
我正在尝试将 ElementTree 对象写入磁盘。一切正常,除了输出文件如下所示:
<html:html lang="en-US" xml:lang="en-US" xmlns:html="http://www.w3.org/1999/xhtml">
<html:head>
<html:title>vocab</html:title>
<html:style type="text/css"> ...
Run Code Online (Sandbox Code Playgroud)
由于它有html:命名空间信息,浏览器无法呈现它。
如何让 etree 在没有html:命名空间信息的情况下将一些 html 保存到磁盘?
这是我用来编写的代码:
with open('/path/to/file.html', mode='w', encoding='utf-8') as outfile:
mypage.write(outfile)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我一直在使用这个解决方法:
from xml.etree import ElementTree as ET
ET.register_namespace('', 'http://www.w3.org/1999/xhtml')
Run Code Online (Sandbox Code Playgroud)
那么html:输出时前缀会被替换为空格。
好吧,我已经让它工作了,但是用了一种迂回的方法。
我正在获取树的字符串(带有etree.tostrng()),然后使用re.sub('html:', '', thetext)来删除名称空间信息。然后,我只是正常地将字符串写入磁盘。