数日前から xml ファイルからデータを解析しようとしていますが、うまくいきません。以下の例から、レイヤーごとのステータス、インデックス、およびフォアグラウンド/プロデューサーのタイプとファイル名の下から必要です。問題は、コンテンツによって構造が異なることです。ファイル名がフォアグラウンド/プロデューサー/フィル/プロデューサーの下にあるインデックス 2 を見てください (フォアグラウンド/プロデューサー/キー/プロデューサーの下にファイル名は必要ありません)。私は簡単な解決策を探しています(etree.ElementTreeで試していますが、解析はとても難しいようです)。
<?xml version="1.0" encoding="utf-8"?>
<channel>
<video-mode>1080i5000</video-mode>
<stage>
<layers>
<layer>
<status>stopped</status>
<auto_delta>-1</auto_delta>
<frame-number>1829997</frame-number>
<nb_frames>0</nb_frames>
<frames-left>-1829996</frames-left>
<foreground>
<producer>
<type>empty-producer</type>
</producer>
</foreground>
<background>
<producer>
<type>transition-producer</type>
<source>
<producer>
<type>empty-producer</type>
</producer>
</source>
<destination>
<producer>
<type>ffmpeg-producer</type>
<filename>media\\MULTI\testfile2.mpg</filename>
<width>1920</width>
<height>1080</height>
<progressive>true</progressive>
<fps>25</fps>
<loop>false</loop>
<frame-number>0</frame-number>
<nb-frames>4396</nb-frames>
<file-frame-number>0</file-frame-number>
<file-nb-frames>4396</file-nb-frames>
</producer>
</destination>
</producer>
</background>
<index>0</index>
</layer>
<layer>
<status>playing</status>
<auto_delta>-1</auto_delta>
<frame-number>1830920</frame-number>
<nb_frames>4294967295</nb_frames>
<frames-left>4293136376</frames-left>
<foreground>
<producer>
<type>ffmpeg-producer</type>
<filename>media\AMB.mp4</filename>
<width>720</width>
<height>576</height>
<progressive>true</progressive>
<fps>25</fps>
<loop>true</loop>
<frame-number>1830920</frame-number>
<nb-frames>4294967295</nb-frames>
<file-frame-number>520</file-frame-number>
<file-nb-frames>1600</file-nb-frames>
</producer>
</foreground>
<background>
<producer>
<type>empty-producer</type>
</producer>
</background>
<index>1</index>
</layer>
<layer>
<status>playing</status>
<auto_delta>-1</auto_delta>
<frame-number>1830758</frame-number>
<nb_frames>4294967295</nb_frames>
<frames-left>4293136538</frames-left>
<foreground>
<producer>
<type>separated-producer</type>
<fill>
<producer>
<type>ffmpeg-producer</type>
<filename>media\action.mpg</filename>
<width>1920</width>
<height>1080</height>
<progressive>false</progressive>
<fps>25</fps>
<loop>true</loop>
<frame-number>1830758</frame-number>
<nb-frames>4294967295</nb-frames>
<file-frame-number>22</file-frame-number>
<file-nb-frames>247</file-nb-frames>
</producer>
</fill>
<key>
<producer>
<type>ffmpeg-producer</type>
<filename>media\action_a.mpg</filename>
<width>1920</width>
<height>1080</height>
<progressive>false</progressive>
<fps>25</fps>
<loop>true</loop>
<frame-number>1830758</frame-number>
<nb-frames>4294967295</nb-frames>
<file-frame-number>22</file-frame-number>
<file-nb-frames>247</file-nb-frames>
</producer>
</key>
</producer>
</foreground>
<background>
<producer>
<type>empty-producer</type>
</producer>
</background>
<index>2</index>
</layer>
</layers>
</stage>
<mixer/>
<output>
<consumers>
<consumer>
<type>oal-consumer</type>
<index>500</index>
</consumer>
<consumer>
<type>ogl-consumer</type>
<key-only>false</key-only>
<windowed>true</windowed>
<auto-deinterlace>true</auto-deinterlace>
<index>600</index>
</consumer>
</consumers>
</output>
<index>0</index>
</channel>