【发布时间】:2017-09-27 15:16:41
【问题描述】:
我有一个 XML 文件,之前我注释了一些元素,现在我想取消注释它们..
我有这个结构
<parent parId="22" attr="Alpha">
<!--<reg regId="1">
<cont>There is some content</cont><cont2 attr1="val">Another content</cont2>
</reg>
--></parent>
<parent parId="23" attr="Alpha">
<reg regId="1">
<cont>There is more content</cont><cont2 attr1="noval">Morecont</cont2>
</reg>
</parent>
<parent parId="24" attr="Alpha">
<!--<reg regId="1">
<cont>There is some content</cont><cont2 attr1="val">Another content</cont2>
</reg>
--></parent>
我想取消注释该文件的所有 cmets。因此,注释元素也是如此,我将取消注释它们。
我能够找到使用 xpath 进行注释的元素。这是我的 sn-p 代码。
def unhide_element():
path = r'path_to_file\file.xml'
xml_parser = et.parse(path)
comments = root.xpath('//comment')
for c in comments:
print('Comment: ', c)
parent_comment = c.getparent()
parent_comment.replace(c,'')
tree = et.ElementTree(root)
tree.write(new_file)
但是,替换无法正常工作,因为它需要另一个元素。
我该如何解决这个问题?
【问题讨论】:
标签: python python-3.x xpath lxml