3

ElementTree用来修改以下xml:

<li>
  <p>Some stuff goes in <b>bold</b> here </p>
</li>

我想<p>从我的<li>元素中删除所有内容,但保留内容。

像这样:

<li>Some stuff goes in <b>bold</b> here</li>

我目前正在使用以下代码,它适用于简单的情况(无文本/尾部等......):

# 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)

必须有一种更简单的方法来去除格式化标签....我希望?

4

1 回答 1

4

也许最简单的方法是使用 ElementTree 来处理 HTML,而是使用BeautifulSoup;该库通过以下.unwrap()方法显式处理展开:

for elem in soup.find_all('li'):
    for para in elem.find_all('p'):
        para.unwrap()
于 2013-05-27T20:44:21.813 回答