python

调用时机:

从行开始,遇到标签之前,存在字符,content的值为这些字符串。

从一个标签,遇到下一个标签之前, 存在字符,content的值为这些字符串。

从一个标签,遇到行结束符之前,存在字符,content的值为这些字符串。

标签可以是开始标签,也可以是结束标签。

startDocument()方法

文档启动的时候调用。

endDocument()方法

解析器到达文档结尾时调用。

startElement(name, attrs)方法

遇到XML开始标签时调用,name是标签的名字,attrs是标签的属性值字典。

minidom.parse(filename)    #加载读取XML文件 

doc.documentElement        #获取XML文档对象 

node.getAttribute(AttributeName)    #获取XML节点属性值 

node.getElementsByTagName(TagName)    #获取XML节点对象集合 

node.childNodes    #返回子节点列表。 

node.childNodes[index].nodeValue    #获取XML节点值 

node.firstChild    #访问第一个节点。等价于pagexml.childNodes[0] 

doc = minidom.parse(filename)

doc.toxml('UTF-8')    #返回Node节点的xml表示的文本 

Node.attributes["id"]    #访问元素属性

a.name    #就是上面的 "id"

a.value    #属性的值

一、SAX解析XML

# SAX是一种基于事件驱动的API

# 两个部分:解析器和事件处理器

# 解析器负责读取XML文档,并向事件处理器发送事件,如:元素开始跟元素结束事件

# 事件处理器:负责对事件作出响应,对传递的XML数据进行处理

# 对大型文件进行处理

# 只需要文件的部分内容,或者只需从文件中得到特定信息

# 想建立自己的对象模型的时候适合用

 

在python中使用sax方式处理xml:

先引入xml.sax中的parse函数、xml.sax.handler中的ContentHandler

1、  ContentHandler类方法

2、characters(content)方法

调用时机:从行开始,遇到标签之前,存在字符,content的值为这些字符串

从一个标签,遇到下一个标签之前,存在字符,content的值为这些字符串

从一个标签,遇到行结束符之前,存在字符,content的值为这些字符串

标签可以是开始标签,也可以是结束标签

3、startDocument()方法

文档启动的时候调用

4、endDocument()方法:解析器到达文档结尾时调用

5、startElement(name,attrs)方法:

遇到XML开始标签时调用,name是标签的名字,attrs是标签的属性值字典

6、endElement(name)方法:遇到XML结束标签时调用

7、make_parser方法:创建一个新的解析器对象并返回xml.sax.make_parser([parser_list])。parser_list————可选参数————解析器列表

8、parser方法:创建SAX解析器并解析xml文档,

   xml.sax.parse(xmlfile,contenthandler[,errorhandler])

       xmlfile - xml文件名

       contenthandler - 必须是一个ContentHandler的对象

        errorhandler - 如果指定该参数,errorhandler必须是一个SAXErrorHandler对象 '''

9、parseString方法:创建一个XML解析器并解析xml字符串

   xml.sax.parseString(xmlstring, contenthandler[, errorhandler])

       xmlstring - xml字符串

       contenthandler - 必须是一个ContentHandler的对象

       errorhandler - 如果指定该参数,errorhandler必须是一个SAXErrorHandler对象



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值