lxml.etree去除子节点
2015-12-14 19:33
411 查看
去除etree中的某个子节点有两种方法:
1、parentnode.remove(node)
2、etree.strip_elements(html, 'element_name', with_tag=True/False)
但是在实际使用的时候如果要删除的node.tail不为空,则会把node.tail也删除掉,导致不必要的丢失,解决办法如下:
通过在前序节点中保留node.tail,可以在删除node的同时,保留node.tail的内容。
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的内容。
相关文章推荐
- 如何处理JS与smarty标签的冲突
- CPU与内存的那些事
- 题目1380:lucky number
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置(转)
- 枚举 enum
- 计算机网络笔记(二)谢希仁版
- 64位WIN7上成功安装theano,并运行了g++, GPU
- 如何使用composer?
- Oracle中的注释
- mysql query cache详解
- 几种TCP连接中出现RST的情况
- 蔡氏电路与logistic映射
- x的平方根
- ios9基础知识总结(一)
- Oracle 创建用户、表空间,及为索引指定表空间
- storybored 线拖tabbarvc app去保存对象
- [Codevs 1107][NOIP 1107]等效表达
- springbean装配
- 编译Android源码以及单个模块的编译