lxml.etree去除子节点

lxml.etree去除子节点

去除etree中的某个子节点有两种方法:

1、parentnode.remove(node)

2、etree.strip_elements(html, ‘element_name’, with_tag=True/False)

但是在实际使用的时候如果要删除的node.tail不为空,则会把node.tail也删除掉,导致不必要的丢失,解决办法如下:

            parent = node.getparent()
                if parent is not None:
                    parent_text = re.sub('\s', '', get_child_text(parent))
                    text = node.tail if anchor.tail else ''
                    previous = node.getprevious()
                    if previous is not None:
                        previous.tail = (previous.tail or '') + text 
                    else:
                        parent.text = (parent.text or '') + text 
                    parent.remove(node)
                    break            

 通过在前序节点中保留node.tail,可以在删除node的同时,保留node.tail的内容。

转载于:https://www.cnblogs.com/chybot/p/5046258.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109211.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • axios的安装和使用

    axios的安装和使用文章目录一、axios介绍二、安装axios三、案例一、axios介绍什么是axios?Axios是一个基于promise的HTTP库,可以用在浏览器和node.js中。特性:1、从浏览器中创建XMLHttpRequests2、从node.js创建http请求3、支持PromiseAPI4、拦截请求和响应5、转换请求数据和响应数据6、取消请求7、自动转换JSON数据8、客户端支持防御XSRF浏览器支持:二、安装axios方法一:速.

    2025年8月18日
    3
  • 十分钟搞懂Pytorch如何读取MNIST数据集

    前言本文用于记录使用pytorch读取minist数据集的过程,以及一些思考和疑惑吧…正文在阅读教程书籍《深度学习入门之Pytorch》时,文中是如此加载MNIST手写数字训练集的:train_dataset=datasets.MNIST(root=’./MNIST’,train=True,transform=data_tf,download=True)解释一下参数datasets.MNIST是Pytorch的内置函数torchvision.datasets.MNIST,通过这个可以导入数

    2022年4月8日
    38
  • 如何解决Xcode中的SIGABRT错误

    一分钟,您的iOS应用程序可以在Xcode中正常运行,而下一分钟,它由于不可思议的SIGABRT错误而崩溃了。这是怎么回事!?在本教程中,您将学习:如何解决Xcode中的“SignalSIGABRT”错误 如何在Xcode中使用某些调试工具 SIGABRT代表什么,其原因是什么 找到SIGABRT根本原因的3种方法准备好?我们走吧。“线程1:信号SIGABRT”是什么意思? 检查您的Outlets 检查堆栈跟踪 设置异常断点 进一步阅读“线程1:信号SIGABRT”是什..

    2022年4月17日
    54
  • clientHeight、scrollHeight、offsetHeight和scrollTop之间区别[通俗易懂]

    clientHeight、scrollHeight、offsetHeight和scrollTop之间区别[通俗易懂]屏幕可见区域高(内容的可视高度,不包括边框,边距或滚动条):document.body.clientHeight正文内容高(整个元素的高度,包括带滚动条的隐蔽的地方):document.body.scrollHeight内容高+padding+边框:document.body.offsetHeight滚动条已经滚动的高度:document.body.scrollTop屏幕分辨率高:

    2022年7月23日
    12
  • VS2008简体中文正式版序列号

    VS2008简体中文正式版序列号VS2008简体中文正式版序列号1.VisualStudio2008ProfessionalEdition:XMQ2Y-4T3V6-XJ48Y-D3K2V-6C4WT2.VisualStud

    2022年7月2日
    21
  • mysql 动态新建以及删除分区表

    因为项目需要,最近研究了一下在mysql数据库下如何动态新建以及删除分区表。如果全部借助存储过程的话,新建以及删除分区表在逻辑上比较死板、不灵活,而且还容易出错。因此,我新建了一个数据表table_f

    2021年12月21日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号