Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python选择和重新排列HTML元素_Python_Html - Fatal编程技术网

使用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请查看我最近的编辑。