Я новичок в Python, поэтому, пожалуйста, помогите. Я хотел бы добавить индекс к элементам row
и column
таким же образом, как элементы page
имеют индекс.
На странице 1 есть 4 строки, поэтому индекс будет изменяться от 0 до 3. На странице 1, строка 0 содержит только один столбец, поэтому индекс будет только 0.
На странице 1, строке 2 есть 3 столбца, поэтому индекс для столбцов будет изменяться от 0 до 2. То же самое для других строк на других страницах.
Я начал тестирование с Elementree, но только основы для печати элементов. Может быть, кто-то мог бы помочь мне с этим.
У меня есть следующий код только для базовых тестов, но я не знаю, как это сделать.
import xml.etree.ElementTree as ET
tree = ET.parse('smp.xml')
root = tree.getroot()
for text in root.iter('text'):
print(text.attrib)
for text in root.iter('text'):
print(text.text)
Входной XML выглядит следующим образом:
<?xml version="1.0"?>
<doc>
<page index="0"/>
<page index="1">
<row>
<column>
<text>fibrous drupe</text>
</column>
</row>
<row>
<column>
<text>follicle</text>
</column>
<column>
<text>legume</text>
</column>
</row>
<row>
<column>
<text>loment</text>
</column>
<column>
<text>nut</text>
</column>
<column>
<text>samara</text>
</column>
</row>
<row>
<column>
<text>schizocarp</text>
</column>
</row>
</page>
<page index="2">
<row>
<column>
<text>cypsela</text>
</column>
</row>
</page>
<page index="3"/>
</doc>
и я хотел бы преобразовать это в:
<?xml version="1.0"?>
<doc>
<page index="0"/>
<page index="1">
<row index="0">
<column index="0">
<text>fibrous drupe</text>
</column>
</row>
<row index="1">
<column index="0">
<text>follicle</text>
</column>
<column index="1">
<text>legume</text>
</column>
</row>
<row index="2">
<column index="0">
<text>loment</text>
</column>
<column index="1">
<text>nut</text>
</column>
<column index="2">
<text>samara</text>
</column>
</row>
<row index="3">
<column index="0">
<text>schizocarp</text>
</column>
</row>
</page>
<page index="2">
<row index="0">
<column index="0">
<text>cypsela</text>
</column>
</row>
</page>
<page index="3"/>
</doc>
Надеюсь, есть смысл. Заранее спасибо.