使用ElementTree删除父标签(不移除子标签)标签、移除、ElementTree

2023-09-03 12:09:50 作者:Archive(封存)

我正在使用ElementTree修改以下XML:

<li>
  <p>Some stuff goes in <b>bold</b> here </p>
</li>
我想从<li>元素中删除所有<p>,但保留内容。

这样:

<li>Some stuff goes in <b>bold</b> here</li>
element ui el tree 子节点全不选时,设置父节点半选状态

我目前使用的是以下代码,它在简单的情况下(没有文本/尾巴等)有效:

# strip <p> from <li> elements
liElements = rootNode.findall('.//li')
for elem in liElements:
    para = elem.find(".//p")
    for child in para:
        elem.append(child)
    elem.text = para.text
    elem.remove(para)
必须有一种更简单的方法来剥离格式化标签...我希望?

ElementTree

可能最简单的方法是不使用来处理推荐答案,而是使用BeautifulSoup;该库通过.unwrap() method:

处理显式展开
for elem in soup.find_all('li'):
    for para in elem.find_all('p'):
        para.unwrap()