0

の要素は可変<product>であるため、アイテム内のすべての要素をリストする必要があります。<product>

XML ファイル :

<catalog>
   <product>
      <element1>text 1</element1>
      <element2>text 2</element2>
      <element..>text ..</element..>
   </produc>
</catalog>

Python パーサー: xml ファイルが大きいため、fast_iter を使用しています...

import lxml.etree as etree
import configs.application as configs

myfile = configs.application.tmp + '/xml_hug_file.xml'

def fast_iter(context, func, *args, **kwargs):
    for event, elem in context:
        func(elem, *args, **kwargs)
        elem.clear()
        while elem.getprevious() is not None:
            del elem.getparent()[0]
    del context

def process_element(catalog):
    print("List all element of <product>")

context = etree.iterparse(myfile, tag='catalog', events = ('end', ))
fast_iter(context, process_element)
4

3 に答える 3