Python的deadsimple ObjectXML映射器

gexml的Python项目详细描述


让我们面对现实:xml是现代生活的一个事实。我甚至可以说 它的作用是good。但这并不意味着工作容易 但这并不意味着我们必须喜欢它。大多数时候,XML 只是需要让开,让你做一些实际的工作 编写代码来遍历和操作另一个DOM。在

gexml模块获取XML标记和Python对象之间的明显映射 让你尽可能清晰地捕捉到。灵感来源于Django的 ORM,您可以编写简单的类定义来定义 您的XML文档。是这样的:

>>> import gexml
>>> from gexml import fields
>>> class Person(gexml.Model):
...   name = fields.String()
...   age = fields.Integer(tagname='age')

然后可以将XML文档解析为如下对象:

^{pr2}$

您可以将对象呈现为这样的XML文档:

>>> p = Person(name="Handsome B. Wonderful",age=36)
>>> p.render()
'<?xml version="1.0" ?><Person name="Handsome B. Wonderful"><age>36</age></Person>'

解析的文档将引发错误:

>>> p = Person.parse("<Person><age>92</age></Person>")
Traceback (most recent call last):
    ...
ParseError: required field not found: 'name'

当然,嵌套模型定义时会更有趣,例如:

>>> class Group(gexml.Model):
...   name = fields.String(attrname="name")
...   members = fields.List(Person)
...
>>> g = Group(name="Monty Python")
>>> g.members.append(Person(name="John Cleese",age=69))
>>> g.members.append(Person(name="Terry Jones",age=67))
>>> g.render(fragment=True)
'<Group name="Monty Python"><Person name="John Cleese"><age>69</age></Person><Person name="Terry Jones"><age>67</age></Person></Group>'

它支持XML命名空间、默认字段值、不区分大小写 解析,还有更多有趣的东西。查看以下文档 课程了解更多详细信息:

Model:the base class for objects that map into XML
Field:the base class for individual model fields
Meta:meta-information about how to parse/render a model

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java静态键入和编写一个简单的矩阵库   java如何最小化层次结构的代码量   这是在Google云数据存储中使用Java按键查询的正确方法吗?   java Android php+mysql+json执行异步任务时出错   java Hadoop Hbase访问被拒绝异常   java如何在json中指定特定的对象路径   JavaSpringJPA/Hibernate在使用@modify和@Query进行特殊更新之前调用完整更新   java多个错误通知   java插入Linkedlist和Node   java将图像放在webview中并调整其宽度   Java没有真实属性的缺点是什么?   java“isGooglePlayServicesAvailable”(此)已被弃用   java托管HIPPO CMS   安卓 Java。网URI构造函数不是编码字符(&C)   java如何用hibernate映射Deque?   java传递枚举类型作为参数   java自由堆大小在Maven中不会增加   java如何使用hashmap和arraylist的循环逻辑?   java如何使用JDBC复制MySql数据库