我怎么能得到订单的一种元素的属性名单的使用Python xml。sax?

StackOverflow https://stackoverflow.com/questions/998514

  •  14-09-2019
  •  | 
  •  

我怎么能得到订单的一种元素的属性清单?它不是完全必要的,对于最后的处理,但它是好的:

  • 在一个过滤器,不对无偿进行重新排序的属性列表

  • 在调试,打印数据,在相同的顺序,因为它出现在输入

这是我目前的属性处理这个词典-像传过来的属性。

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 类型并不能保证顺序键。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top