`
scm002
  • 浏览: 309324 次
社区版块
存档分类
最新评论

lxml.etree

 
阅读更多

http://www.cnblogs.com/bluescorpio/archive/2013/06/09/3127964.html

http://blog.csdn.net/u012063703/article/details/51754665

http://www.jianshu.com/p/f446663c970f

 

1. 判断是否有子元素或子节点

使用len(element),这更清楚,也不容易犯错。

>>> print(etree.iselement(root))  # test if it's some kind of Element
True
>>> if len(root):                 # test if it has children
...     print("The root element has children")
The root element has children
 2. How to get childcode
element.getchildren()
3  Create xml with encoding="utf-8"
print et.tostring(tree, xml_declaration=True, encoding="utf-8")
 
例子:

#!/usr/bin/env python

 

import os

import sys

import re

 

from lxml import etree

 

 

 

tree1 = etree.parse(r'default.xml')

root1 = tree1.getroot()

 

root = etree.Element('manifest')

 

#for child in root1.iter('project'):

for child in root1:

  if not isinstance(child, etree._Comment):

    if len(child):

      child_node = etree.SubElement(root, child.tag, child.attrib)

      for node in child.getchildren():

        etree.SubElement(child_node, node.tag, node.attrib)

        print node.tag, node.attrib

    else:

      etree.SubElement(root, child.tag, child.attrib)

  else:

    root.append(etree.Comment(child.text))

 

tree = etree.ElementTree(root)

tree.write('mytest.xml', pretty_print=True, xml_declaration=True, encoding="utf-8", method='xml')

 

"""

remote = etree.Element('remote', fetch="..", name="MTK", review="10.75.10.90:8080")

default = etree.Element('default', {'remote': "MTK", 'revision': "E1/MTK/MT6737M/8.0/dev", 'sync-c': 'true', 'sync-j': '4'})

#root.append(remote)

#root.append(default)

root.extend([remote, default])

"""

 

"""

etree.SubElement(root, 'remote', fetch="..", name="MTK", review="10.75.10.90:8080")

etree.SubElement(root, 'default', {'remote': "MTK", 'revision': "E1/MTK/MT6737M/8.0/dev", 'sync-c': 'true', 'sync-j': '4'})

etree.SubElement(root, 'project', groups="device,fugu,broadcom_pdk,pdk", name="MTK/device/asus/fugu", path="LINUX/android/device/asus/fugu", revision="22d134832ae86e1df7f2ceee7ce0fbb56155050f", upstream="MTK/MT6737M/8.0/PRS.2017.06.10.10.00")

 

 

xml_data = etree.tostring(root, pretty_print=True, xml_declaration=True, encoding="utf-8")

print xml_data

print 'write xml...'

tree = etree.ElementTree(root)

tree.write('mytest.xml', pretty_print=True, xml_declaration=True, encoding="utf-8")

#with open('your.xml', 'w') as f:

#  f.write(xml_data)

"""
 
分享到:
评论

相关推荐

    from lxml import etree

    使用python 中 from lxml import etree 时,系统提示未找到文件之类的错误,由于python 自带的并没有集成,安装后即可

    解决lxml没有etree的方法

    先 pip uninstall lxml 卸载模块 ,下载压缩包, 然后去找到C:\Program Files\Anaconda3\Lib\site-packages 模块路径,解压就可以了

    lxml.rar,解决lxml包没有etree的问题

    解决lxml包没有etree的问题,解决lxml包没有etree的问题,解决lxml包没有etree的问题

    python lxml中etree的简单应用

    这里主要介绍一下我常用到的两个方法,分别是etree.HTML()和etree.tostrint()。 1.etree.HTML() etree.HTML()可以用来解析字符串格式的HTML文档对象,将传进去的字符串转变成_Element对象。作为_Element对象,可以...

    京东商城海量数据爬取python源码

    3.lxml.etree.HTML() 3.xpath是网页数据的一种方法 (实操) 能帮助我们去乱七八糟的网页里面找到我们需要的数据。 1.把你需要的数据先列出来 2.把鼠标放在需要的数据上面 右键检查 复制它的xpath 3

    Python3.5以上版本lxml导入etree报错的解决方案

    在python中安装了lxml-4.2.1,在使用时发现导入etree时IDE中报错Unresolved reference 其实发现,不影响使用,可以正常运行,对于我这种要刨根问底的人不搞明白怎么能罢休了,要保证代码不红 就研究了下源码,通过...

    使用python对OpenStreetMap地图数据进行清洗

    import lxml.etree as ET from collections import defaultdict import matplotlib.pyplot as plt %matplotlib inline import pprint import re import codecs import json filename="map.osm" import re from ...

    Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例

    因为需要使用叶子节点的路径来作为特征,但是原始的lxml模块解析之后得到的却是整个页面中所有节点的xpath路径,不是我们真正想要的形式,所以就要进行相关的处理才行了,差了很多网上的博客和文档也没有找到一个是...

    Python lxml模块的基本使用方法分析

    利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法,返回结果的列表,能够接受bytes类型的数据和str类型的数据 html = etree.HTML(text) ret_list = html.xpath(xpath字符串)

    klon:Klon是用于构建ElementTree的实用程序的集合

    Klon是用于构建ElementTree的实用程序的集合。 from klon import build_etree etree = build_etree ( ... [ 'head' , [ 'title' , 'Test Document' ], ... 那么您将获得具有相同接口的版本,但该版本将使用lxml.etree.

    模块三 第一周 作业一 xpath应用

    1 问题解析 ...import lxml.etree as le import urllib.request as ur # 请求url # request=ur.Request('https://edu.csdn.net') # # 读取页面 # response=ur.urlopen(request).read() # # 保存页面 #

    lxml详解.rar

    第一章 XML基础速成 第二章 彻底掌握python中的lxml (一) 第三章 彻底掌握python中的lxml (二) lxml封装 ... 代码及讲解非常全面

    lxml-4.4.1.tar.gz

    lxml-4.4.1.tar.gz源码安装包,帮助解决 无法调用lxml库中etree模块 的问题

    [ Python ] 爬虫类库学习之 xpath

    etree.parse(filePath) 2、可以将从互联网上获取的源码数据加载到该对象中 page_text = requests.get(url, headers=headers).text etree.HTML('page_text') xpath表达式 /:表示的是从根节点开始定位,表示的是一...

    lxml解析器

    lxml的etree安装, 直接 pip install 此包, 就可以解决

    easy_install安装代码 ez_setup.py

    easy_install安装代码 ez_setup.py

    带有easy_install功能的python的 Scripts文件夹

    带有easy_install功能的python的 Scripts文件夹

    python爬取豆瓣电影(requests模块)

    python使用requests模块请求网址,使用lxml模块中etree抓取数据,并使用time模块延时 爬取的页面为: 运行结果如下图所示: python代码如下: 在这里插入代码片 # _*_ coding:utf _*_ # 邮箱:3195841740@qq.com #...

Global site tag (gtag.js) - Google Analytics