我正在尝试使用python写入一个html文件,我添加的任何标签都被隐藏了
e.g。 <tr>
至<tr>
知道为什么会这样,以及如何避免它?
在html页面中,我插入的确切文本显示而不是被视为html标记
守则的一部分:
htmlReport=ElementTree()
htmlReport.parse('result_templte.html')
strTable="<tr><td>Text here</td></tr>"
for node in htmlReport.findall('.//*[@id="table1"]')
node.text=strTable
htmlReport.write("results.html")
将html标记写为<
>
到文件中。所以插入的标签不会被视为正确的html标签
答案 0 :(得分:3)
您正在尝试将元素添加为另一个元素的子元素,但实际上您只是添加了恰好包含<
和>
标记分隔符的纯文本字符串。要使其工作,您需要解析字符串以获取新的元素对象并在正确的位置添加(追加)它。
我们假设template.html看起来像这样:
<html>
<table>
</table>
<table id="table1">
</table>
</html>
然后,您可以添加tr
元素作为第二个table
的子元素,如下所示:
from xml.etree import ElementTree as ET
tree = ET.parse('template.html')
# Get the wanted 'table' element
table = tree.find(".//table[@id='table1']")
# Parse string to create a new element
tr = ET.fromstring("<tr><td>Text here</td></tr>")
# Append 'tr' as a child of 'table'
table.append(tr)
tree.write("results.html")
这就是results.html的样子:
<html>
<table>
</table>
<table id="table1">
<tr><td>Text here</td></tr></table>
</html>