python小例子之3 -- 解析xml文本
来源:互联网 发布:mac装office 编辑:程序博客网 时间:2024/06/04 23:22
主题:python小例子之3 -- 解析xml文本
主题: 解析xml文本
环境: winxp pro + sp2 + python2.5
备注: 请注意,凡是在源代码文件中使用了中文字符,请最好保存为utf-8格式
测试用例sample.xml也请用utf-8格式保存
代码:
python 代码
1. # parsexml.py
2. # 本例子参考自python联机文档,做了适当改动和添加
3.
4. import xml.parsers.expat
5.
6. # 控制打印缩进
7. level = 0
8.
9. # 获取某节点名称及属性值集合
10. def start_element(name, attrs):
11. global level
12. print ' '*level, 'Start element:', name, attrs
13. level = level + 1
14.
15. # 获取某节点结束名称
16. def end_element(name):
17. global level
18. level = level - 1
19. print ' '*level, 'End element:', name
20.
21. # 获取某节点中间的值
22. def char_data(data):
23. if(data == '/n'):
24. return
25. if(data.isspace()):
26. return
27. global level
28. print ' '*level, 'Character data:', data
29.
30. p = xml.parsers.expat.ParserCreate()
31.
32. p.StartElementHandler = start_element
33. p.EndElementHandler = end_element
34. p.CharacterDataHandler = char_data
35. p.returns_unicode = False
36.
37. f = file('sample.xml')
38. p.ParseFile(f)
39. f.close()
测试用例:
xml 代码:sample.xml
1. xml version="1.0"?>
2. <contacts id="bluecrystal">
3. <item name="keen" fff="ddd">
4. <telephone type="phone">222222222telephone>
5. <telephone type="mobile">134567890telephone>
6. item>
7. <item name="bcm">
8. <telephone type="phone">11111111telephone>
9. <telephone type="mobile">15909878909telephone>
10. item>
11. contacts>
测试结果:
1. Start element: contacts {'id': 'bluecrystal'}
2. Start element: item {'fff': 'ddd', 'name': 'keen'}
3. Start element: telephone {'type': 'phone'}
4. Character data: 222222222
5. End element: telephone
6. Start element: telephone {'type': 'mobile'}
7. Character data: 134567890
8. End element: telephone
9. End element: item
10. Start element: item {'name': 'bcm'}
11. Start element: telephone {'type': 'phone'}
12. Character data: 11111111
13. End element: telephone
14. Start element: telephone {'type': 'mobile'}
15. Character data: 15909878909
16. End element: telephone
17. End element: item
18. End element: contacts
环境: winxp pro + sp2 + python2.5
备注: 请注意,凡是在源代码文件中使用了中文字符,请最好保存为utf-8格式
测试用例sample.xml也请用utf-8格式保存
代码:
python 代码
1. # parsexml.py
2. # 本例子参考自python联机文档,做了适当改动和添加
3.
4. import xml.parsers.expat
5.
6. # 控制打印缩进
7. level = 0
8.
9. # 获取某节点名称及属性值集合
10. def start_element(name, attrs):
11. global level
12. print ' '*level, 'Start element:', name, attrs
13. level = level + 1
14.
15. # 获取某节点结束名称
16. def end_element(name):
17. global level
18. level = level - 1
19. print ' '*level, 'End element:', name
20.
21. # 获取某节点中间的值
22. def char_data(data):
23. if(data == '/n'):
24. return
25. if(data.isspace()):
26. return
27. global level
28. print ' '*level, 'Character data:', data
29.
30. p = xml.parsers.expat.ParserCreate()
31.
32. p.StartElementHandler = start_element
33. p.EndElementHandler = end_element
34. p.CharacterDataHandler = char_data
35. p.returns_unicode = False
36.
37. f = file('sample.xml')
38. p.ParseFile(f)
39. f.close()
测试用例:
xml 代码:sample.xml
1. xml version="1.0"?>
2. <contacts id="bluecrystal">
3. <item name="keen" fff="ddd">
4. <telephone type="phone">222222222telephone>
5. <telephone type="mobile">134567890telephone>
6. item>
7. <item name="bcm">
8. <telephone type="phone">11111111telephone>
9. <telephone type="mobile">15909878909telephone>
10. item>
11. contacts>
测试结果:
1. Start element: contacts {'id': 'bluecrystal'}
2. Start element: item {'fff': 'ddd', 'name': 'keen'}
3. Start element: telephone {'type': 'phone'}
4. Character data: 222222222
5. End element: telephone
6. Start element: telephone {'type': 'mobile'}
7. Character data: 134567890
8. End element: telephone
9. End element: item
10. Start element: item {'name': 'bcm'}
11. Start element: telephone {'type': 'phone'}
12. Character data: 11111111
13. End element: telephone
14. Start element: telephone {'type': 'mobile'}
15. Character data: 15909878909
16. End element: telephone
17. End element: item
18. End element: contacts
- python小例子之3 -- 解析xml文本
- python小例子之删除文本标签
- python xml解析例子
- dom解析xml小例子
- Dom4j解析xml小例子
- Poco解析XML小例子
- python 文本解析 XML基础
- AJXA解析XML文件小例子
- Python之解析XML
- Python之xml解析
- Python读取XML配置文件小例子
- Unity3d之LitJson例子解析+XML
- python解析xml之lxml
- Python XML解析之DOM
- Python XML解析之SAX
- Python学习之文本处理小任务
- python 3 UDP小例子
- python 转化xml为json的一个小例子
- Groovy笔记(2)_表达式与运算符
- Silverlight中ComboBox的数据项刷新
- PHP中preg函数模式修正符
- 【每天读一点英文:生而为赢Born to Win英文经典短文】gnuhpc注释版: The Road to Success 成功之道
- 任意进制转换
- python小例子之3 -- 解析xml文本
- 扩展sctp协议后的netsh,查看其helper列表中,新增了SCTPMON.DLL
- js的学习方法
- 让IE浏览器支持HTML5标准的方法
- 游戏修改器的基本工作原理
- 我想我应该写点什么
- GIS空间分析算法 内容简介
- Essential C++学习笔记
- python中的文本处理