Livid
396.81D
543.39D
V2EX  ›  Python

XML to Objects?

By Livid at 2012 年 4 月 19 日 · 4901 次点击
Python 中是否有这样的 XML 解析库,可以将这样的 XML 变成一组对象?

<members>
<member><name>a</name></member>
<member><name>b</name></member>
</members>

然后用类似这样的语法就可以读取?

members.member[0].name
16 条回复  •  1970-01-01 08:00:00 +08:00
eas
   1
eas  
   2012 年 4 月 19 日
E4X 语法
bhuztez
   2
bhuztez  
   2012 年 4 月 19 日
xalinx
   3
xalinx  
   2012 年 4 月 19 日
运行期是不能这么干的吧? 楼主的意思是根据xml生成一个python代码?
xalinx
   4
xalinx  
   2012 年 4 月 19 日
@bhuztez 学习了, 回头用用SimpleXMLParse
binux
   5
binux  
   2012 年 4 月 19 日
lizheming
   6
lizheming  
   2012 年 4 月 19 日
PHP用simplexml的话解析出来的就是Object,可是我每次都想要Array的,所以我还要做一次Object->Array...
Livid
   7
Livid  
MOD
OP
PRO
   2012 年 4 月 19 日
经过试验,这个的结果最接近我想要的,尤其是,对于空元素取值返回的是 u'' 而不是 None:

http://pypi.python.org/pypi/simplexml/0.6.1
ssword
   8
ssword  
   2012 年 4 月 20 日 via Android
nokogiri的语法比这种更好,xml本身就是有dom的
csx163
   10
csx163  
   2012 年 4 月 20 日
php 转换非标soap xml转得我想吐
vixvix
   11
vixvix  
   2012 年 4 月 20 日
magicshui
   12
magicshui  
   2012 年 4 月 21 日
BS能做这件事情不?
Livid
   13
Livid  
MOD
OP
PRO
   2012 年 4 月 21 日
@magicshui 用 simplexml 可以对我主题里提到的 XML 实现这样的效果:

xml['members']['member'][0]
X_Del
   14
X_Del  
   2012 年 4 月 21 日
这不是 ORM 吗?不过数据是用 XML 存的而已。
Livid
   15
Livid  
MOD
OP
PRO
   2012 年 4 月 21 日
@X_Del 嗯,类似 ORM 的概念。

有以 XML 作为底层存储的 Python ORM 实现么?
reus
   16
reus  
   2012 年 4 月 21 日
封装一下标准库即可, https://gist.github.com/2437960
推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
© 2026 V2EX · 52ms · 3.9.8.5