使用Python添加缺少的HTML元素

时间:2016-12-07 23:31:58

标签: python html beautifulsoup

如果给我一个包含以下HTML标签的字符串

<li>List Item 1</li>
<li>List Item 2</li>
<li>List Item 3</li>

如何在列表项周围添加<ul>标记,以便HTML有效。

我知道像BeautifulSoup这样的库,但是从查看文档来看,似乎没有任何解决方案。我知道我可以使用正则表达式,但我不是100%我将如何实现这一点,因为<li>标签的数量可以是无限的并且可以包含子项。

有什么想法吗?感谢。

修改

给出的HTML不仅仅是:

<li>List Item 1</li>
<li>List Item 2</li>
<li>List Item 3</li>

但包含其他标记,上面的位只是HTML字符串的一个片段。该字符串也不会相同,它基于用户输入,这意味着它可能是包含<li>而没有正确的<ul>元素作为列表项的父级的任何内容。< / p>

1 个答案:

答案 0 :(得分:0)

根据我的理解,你需要的是这样的东西:

lis = """
<li>List Item 1</li>
<li>List Item 2</li>
<li>List Item 3</li>"""

ul = '<ul>{}</ul>'.format(lis)

要从\n元素中删除li,您可以使用:

ul = '<ul>{}</ul>'.format(''.join(li.strip('\n') for li in lis))

<强>输出:

>>> ul
'<ul><li>List Item 1</li><li>List Item 2</li><li>List Item 3</li></ul>'