使用Python选择和重新排列HTML元素
如何在不使用任何库的情况下构造以下非结构化表元素使用Python选择和重新排列HTML元素,python,html,Python,Html,如何在不使用任何库的情况下构造以下非结构化表元素 <table> <tfoot> <tr><td>Sum</td><td>$180</td></tr> </tfoot> <tbody> <tr><td>January</td><td>$100</td></tr> </tb
<table>
<tfoot>
<tr><td>Sum</td><td>$180</td></tr>
</tfoot>
<tbody>
<tr><td>January</td><td>$100</td></tr>
</tbody>
</table>
总数180美元
一月一百元
所需表格:
<table>
<tbody>
<tr><td>January</td><td>$100</td></tr>
</tbody>
<tfoot>
<tr><td>Sum</td><td>$180</td></tr>
</tfoot>
</table>
一月一百元
总数180美元
维护html元素属性的顺序很重要。我试过使用Beautifulsoup。它改变了顺序。请建议解决此问题的任何pythonic方法,该方法不需要使用beautifulsoup或lxml。您可以通过
re
使用正则表达式:
import re
s = """
<table>
<tfoot>
<tr><td>Sum</td><td>$180</td></tr>
</tfoot>
<tbody>
<tr><td>January</td><td>$100</td></tr>
</tbody>
</table>
"""
new_s = re.sub('\<tfoot\>[\w\W]+\</tfoot\>|\<tbody\>[\w\W]+\</tbody\>', '{}', s).format(*re.findall('\<tfoot\>[\w\W]+\</tfoot\>|\<tbody\>[\w\W]+\</tbody\>', s)[::-1])
重新导入
s=”“”
总数180美元
一月一百元
"""
新的\u s=re.sub('\[\w\w]+\\\[\w]+\','{}',s)。格式(*re.findall('\[\w\w]+\\[\w\w]+\',s)[::-1])
输出:
<table>
<tbody>
<tr><td>January</td><td>$100</td></tr>
</tbody>
<tfoot>
<tr><td>Sum</td><td>$180</td></tr>
</tfoot>
</table>
一月一百元
总数180美元
谢谢@Ajax1234的回复。有可能在tbody下播放tfoot吗?@HoneyBadger请查看我最近的编辑。