我怎么能得到订单的一种元素的属性名单的使用Python xml。sax?
题
我怎么能得到订单的一种元素的属性清单?它不是完全必要的,对于最后的处理,但它是好的:
在一个过滤器,不对无偿进行重新排序的属性列表
在调试,打印数据,在相同的顺序,因为它出现在输入
这是我目前的属性处理这个词典-像传过来的属性。
class MySaxDocumentHandler(xml.sax.handler.ContentHandler):
def startElement(self, name, attrs):
for attrName in attrs.keys():
...
解决方案
我不认为这是可以做到与萨克斯(至少作为当前支持Python).它可以做 外籍, ,设置 ordered_attributes
属性的分析程序的对象 True
(属性后两个平行的列表,一个名字和一个价值观,在同样的顺序作为在XML源)。
其他提示
不幸的是,它不可能在Python执行萨克斯。
这个代码Python库(v2。5)告诉你所有你需要知道的:
class AttributesImpl:
def __init__(self, attrs):
"""Non-NS-aware implementation.
attrs should be of the form {name : value}."""
self._attrs = attrs
的 StartElement
处理程序是通过一个对象执行 AttributeImpl
规范,它利用一个普通的ol'蟒蛇 dict
类型存储key/value对。蟒蛇 dict
类型并不能保证顺序键。
不隶属于 StackOverflow