如何按顺序解析 XML 文件

How to parse an XML file sequentially

我有一个 XML 文件,它描述了我可以在 UDP 通道上交换的数据结构。例如:这是我的输入 XML 文件,描述了我的数据结构。

<ds>
 <uint32 name='a'/>
 <uint32 name='b'/>
 <string name='c'/>
 <int16 name='d'/>
 <uint32 name='e'/>
</ds>

解析此 XML 文件通常允许我生成以下哈希值

   $VAR1 = {
      'uint32' => {
                  'e' => {},
                  'a' => {},
                  'b' => {}
                },
      'int16' => {
                 'name' => 'd'
               },
      'string' => {
                  'name' => 'c'
                }
    };

如您所见,解析后我无法确定字段 'e' 相对于数据结构开头的相对位置。

我想找出每个元素的偏移量。

我尝试搜索 XML 解析器,它允许我按顺序解析 XML 文件,类似于 'getnexttag()' 类功能,但找不到任何东西。

以编程方式执行此操作的最佳方法是什么?如果不是 python,那么哪种其他语言最适合完成这项工作?

我认为 lxml.etree.iterparse 可以用在这里看例子 http://lxml.de/tutorial.html#tree-iteration

docs.python.org/2/library/xml.etree.elementtree.html 终于为我工作了。 谢谢@kenstars