打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python?利用lxml?解析xml文件

python 利用lxml 解析xml文件

#!/usr/bin/python
#--*--coding:UTF-8--*--
from lxml import etree
import re


def operationXML(xml_file,lastModparentNode,lastModChildNode=[]):
    try:
        parentNode = ""
        allChildNodes = []
        doc = etree.ElementTree(file = xml_file)
        root = doc.getroot();
        ns = getNameSpace(doc)
        if ns != None:
            parentNode = root.findall(ns+lastModparentNode,namespaces = None)
        else:
            parentNode = root.findall(lastModparentNode,namespaces = None)
        if parentNode == None or len(parentNode) == 0:
            print ("%s is emtpy"%(xml_file))
        else:
            for node_contents in parentNode:
                childNode=[]
                if len(lastModChildNode)!=0:
                    for childeNode in lastModChildNode:
                        node_text =""
                        if ns== None:
                            node_text = node_contents.find(childeNode)
                        else:
                            node_text = node_contents.find(ns+childeNode)
                        childNode.append(node_text.text)
                else:
                    for childAll in  list(node_contents):
                        childNode.append(childAll.text)
                allChildNodes.append(childNode)
            print allChildNodes
    except Exception,e:
        print e


#根据doc获得namespaces
def getNameSpace(doc):
    ns = None
    try:
        root = doc.getroot()
        r = re.compile('({.+})')
        if r.search(root.tag)!=None:
            ns = r.search(root.tag).group(1)
    except Exception, e:
        print e
    return ns




if __name__ =="__main__":
    """
        xml的内容如下:(目前中文会乱码 )
       
       
               
                    xiaozhao
                    m
                    30
               
               
                    zhao
                    boy
                    12
               
       
    """
    operationXML("D:/a.xml", "employee",["name"])
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用Python解析XML的几种常见方法的介绍_python_脚本之家
C# 静态工厂利用反射机制动态构建配置文件中 所配置的类的对象
Python lxml库简介
Qt 讀寫 XML
FreeMarker一篇通1 - zengjinliang - JavaEye技术网站
linux c libxml生成xml文件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服