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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux 安装tomcat 部署war包项目

    Linux 安装tomcat 部署war包项目准备工作:jdk-8u161-linux-x64.tar.gz链接:https://pan.baidu.com/s/1zQGL_cfN5jFWshZkAJOkNw密码:0u7dapache-tomcat-9.0.20.zip链接:https://pan.baidu.com/s/1Nf_qdmUVlQ0Cz8BOoQg2rA密码:bh9f以及你的war包…

    2022年6月11日
    126
  • win10锁定计算机命令,锁定Windows 10 PC的10种方法

    win10锁定计算机命令,锁定Windows 10 PC的10种方法离开时,锁定Windows10PC是保护计算机安全的最佳方法。这不会退出或中断任何正在运行的应用程序,您必须输入PIN或密码才能通过锁定屏幕。您可以通过以下10种方式锁定计算机。在“开始”菜单中锁定计算机毫不奇怪,“开始”菜单提供了用于锁定PC的选项。只需单击“开始”按钮(Windows图标),选择您的帐户名,然后单击“锁定”。使用Windows键几乎每台WindowsPC的键盘上都有Win…

    2022年7月21日
    11
  • 【18】进大厂必须掌握的面试题-15个Kafka面试

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 1.什么是kafka? Apache Kafka是由Apache开发的一种发布订阅消息系统。 2.kafka的3个关…

    2021年6月23日
    86
  • angular父子组件传值

    angular父子组件传值angular父子组件传值父组件到子组件1.父组件传递数据2.子组件接受数据子组件到父组件1.父组件根据ViewChild获取子组件实例2.子组件通过广播的形式,向子组件发送数据子组件操作父组件接收父组件到子组件1.父组件传递数据在父组件中调用子组件,通过[‘属性值’]进行传值//父组件app-home,子组件app-header//父组件中引用子组件,传递title及msg到子组件<app-header[title]=”title”[msg]=”msg”[run]=”run”[h

    2022年5月13日
    50
  • webgame开发中的文件解密

    webgame开发中的文件解密上一篇讲的是文件的加密,这一篇记录一下如何加载并显示图片。 因为图片文件经过加密,已经成了二进制流的文件了(一堆乱码),只能使用URLStream来加载资源了。这里有一点要注意:URLStream中的读取操作是非阻塞的,在读取数据之前必须使用bytesAvailable属性来确定是否能够获取足够的数据,如何不能获取足够的数据,将引发EOFError异常。 主要思路:1、加载…

    2022年6月7日
    30
  • Mysql 导出数据到Excel

    Mysql 导出数据到Excel

    2021年8月7日
    67

发表回复

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

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