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


相关推荐

  • 两款工控控件对比评测:Iocomp和ProEssentials

    两款工控控件对比评测:Iocomp和ProEssentials对于程序员来说,要凭一己之力开发出漂亮逼真的工控仪表和工控图表是非常耗时间和精力的,那么使用专业的第三方控件就是不错的选择,不仅节约开发时间,降低了项目风险,最重要的是第三方控件写的程序更专业,工控图

    2022年7月1日
    32
  • 万年历月份算法(最实用的万年历)

    中秋节到啦,送给大家一个《万年星期历公式》  该公式是根据公历的基本性质编制的,年份不限,准确率为100%, 公式如下: (年+年/4+年/400-年/100+月日天数-1)/7=XX……余星期几。 其中: (年+年/4+年/400-年/100)/7=XX……余数为该年1月1日星期数。 注:分数商均取整数; 月日天数:平年——润年 一月为:0+日数,0+日数, 二月为:3+日数,…

    2022年4月11日
    48
  • webpack 版本依赖关系[通俗易懂]

    webpack 版本依赖关系[通俗易懂]依赖 版本 新版本 webpack 4 5 webpack-cli 3 4 webpack-dev-server 3 3

    2022年8月10日
    5
  • pycharm+anaconda安装教程_pycharm和anaconda结合安装

    pycharm+anaconda安装教程_pycharm和anaconda结合安装PyCharm的安装一.下载安装包1.安装网址点击进入PyCharm官网2.在导航栏输入网址回车3.点击DOWNLOAD。4.下载它有专业版和社区版,我们下载社区版就可以使用了。(专业版要收费)二.安装过程5.双击安装包。6.点击next7.安装位置它会有一个默认的安装位置,一般默认C盘,但我们可以点击Browse…,安装我们想要安装的位置,我安装在了D盘。如下图:8.安装选择1:createdesktops…

    2022年8月27日
    0
  • ajax跨域请求结合springmvc后台代码学习整理

    ajax跨域请求,在工作中遇到使用ajax发起请求获取数据,但是请求的数据不在同一个域下,这样子就要使用到ajax的跨域请求了! 我使用的框架 SpringMVC,我在PC端的项目里面写一个接口方法,但是在wap项目中也要用改接口!下面贴出示例代码:

    2022年2月25日
    46
  • Jenkins安装_jenkins sonar

    Jenkins安装_jenkins sonar前言jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。环境准备:mac/Linuxdockerdocker拉去jenkins镜像先下载jenkins镜

    2022年7月31日
    4

发表回复

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

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