替换HTML标记的好方法是:
Old : <div id=pgbrk" ....../>....Page Break....</div>
New : <!--page break -->
div
id可能有许多其他值,因此正则表达式不是一个好主意。我需要一些LXML的东西。基本上,我的问题是用字符串替换HTML标记!
答案 0 :(得分:3)
只要您的div
有父标记,就可以执行此操作:
import lxml.html as LH
import lxml.etree as ET
content='<root><div id="pgbrk" ......>....Page Break....</div></root>'
doc=LH.fromstring(content)
# print(LH.tostring(doc))
for div in doc.xpath('//div[@id="pgbrk"]'):
parent=div.getparent()
parent.replace(div,ET.Comment("page break"))
print(LH.tostring(doc))
产量
<root><!--page break--></root>
答案 1 :(得分:2)
您可以使用纯DOM http://docs.python.org/library/xml.dom.minidom.html
1)解析你的来源
from xml.dom.minidom import parse
datasource = open('c:\\temp\\mydata.xml')
doc= parse(datasource)
2)找到要移除的节点
for node in doc.getElementsByTagName('div'):
for attr in node.attributes:
if attr.name == 'id':
...
3)找到目标节点时,用新的评论节点替换它们
parent = node.parentNode
parent.replaceChild(doc.createComment("page break"), node)