xml.etree.elementtree:如何替换类似“innerhtml”的内容?

vcirk6k6  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(423)

我想换新的 <h1> html页面的标记。
但是标题的内容可以是html(而不仅仅是字符串)。
我想插入 foo <b>bold</b> bar 输入:

start 
<h1 class="myclass">bar <i>italic</i></h1>
end

期望输出:

start 
<h1 class="myclass">foo <b>bold</b> bar</h1>
end

如何用python解决这个问题?

ndh0cuux

ndh0cuux1#

parser = HTMLParser(namespaceHTMLElements=False)
etree = parser.parse('start <h1 class="myclass">bar <i>italic</i></h1> end')
for h1 in etree.findall('.//h1'):
    for sub in h1:
        h1.remove(sub)
    html = parser.parse('foo <b>bold</b> bar')
    body = html.find('.//body')
    for sub in body:
        h1.append(sub)
    h1.text = body.text
print(ElementTree.tostring(etree))

相关问题