X-Intend[超级打算]
每个人都有自己的想法,哪怕仅仅一瞬间~!

[转]Python解析xml文本

KingFo 于 2008-10-10 13:55:06 发表  开发者
订阅: 请点击这里获取订阅地址
引用: 请点击这里获取引用通告地址 (UTF-8)
上一篇 < [转]Python解析xml文本 > 下一篇

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()     

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>  

Output:

  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    
 
 

 

被阅 324 次, 0投一票
    1 / 0 / 0 | « 1 » |
    1 / 0 / 0 | « 1 » |
  • 看完了要说点啥么?
  • 昵称 (不填说不了话)
  • 信箱地址 (不会被公开,但是不填也说不了话)
  • 网址 (这个不填也成)

Google 网上论坛
订阅 XIntend
电子邮件:
访问此论坛

文章分类

站点统计

  • 文章总数: 87 篇
  • 评论总数: 6 条
  • 附件总数: 53 个
  • 留言总数: 0 份
  • 建站日期: 2008-1-1
  • 访问总数: 96498 人次

最新留言

赞助商

友情链接

Design by Free CSS Templates & TiSkin, Powered by Roclog v3.2.13

滇ICP备05000389号, Copyright © 2007 X-Intend[超级打算]. All rights reserved.