Я имею в XML эту структуру:Как преобразовать эту структуру в python в оглавление?
<chapter name="Chapter 1">
<page href="6189242584662016.xml" id="PmdrLF" name="Page 1" preview="" reportable="false"/>
<chapter name="Unit">
<page href="6274488671928320.xml" id="z4859l" name="Page 2" preview="" reportable="false"/>
<page href="5159758788034560.xml" id="svTnDD" name="Page 3" preview="" reportable="false"/>
<chapter name="SubUnit">
<page href="4679923007488000.xml" id="cEspy9" name="Page 4" preview="" reportable="true"/>
<page href="5504349496147968.xml" id="KjQ7bG" name="Page 5" preview="" reportable="true"/>
<chapter name="Subsubunit">
<page href="5781185908178944.xml" id="3GMqVp" name="Page 6" preview="" reportable="true"/>
<page href="5938154077945856.xml" id="BRL9vi" name="Page 7" preview="" reportable="true"/>
<page href="4872313035030528.xml" id="e5KpyU" name="Page 8" preview="" reportable="true"/>
</chapter>
</chapter>
</chapter>
</chapter>
<chapter name="Chapter 2">
<page href="5422180966858752.xml" id="0vZ25G" name="Page 9" preview="" reportable="false"/>
<chapter name="SubChapter 1">
<page href="6049587004440576.xml" id="vRWo4F" name="Page 10" preview="" reportable="true"/>
<page href="6302141382656000.xml" id="JQ31J8" name="Page 11" preview="" reportable="true"/>
</chapter>
</chapter>
Я хочу напечатать эту структуру в питона и иметь возможность добавлять счет на каждую страницу легким способом.
У меня есть эта функция:
def get_hierarchy(element, pages, page_number, chapter_level, chapter_number):
for node in element.childNodes:
if node.nodeName == 'page':
page_number += 1
if node.nodeName == 'folder' and node.getAttribute('name') == 'commons':
continue
if node.nodeName == 'footer' or node.nodeName == 'header':
continue
if node.nodeName == 'page' and node.getAttribute("reportable") == 'false':
continue
if node.nodeName == 'page':
pages.append({'name': node.getAttribute("name"), 'page_number': page_number, 'parent' : chapter_level, 'is_page': True, 'chapter_number': chapter_number})
else:
chapter_number += 1
pages.append({'name': node.getAttribute("name"), 'parent' : chapter_level, 'is_page': False, 'chapter_number': chapter_number})
if node.nodeName == 'chapter':
chapter_level = chapter_number
page_number, chapter_number = get_hierarchy(node, pages, page_number, chapter_level, chapter_number)
chapter_level = 0
return page_number, chapter_number
Но когда я хочу, чтобы напечатать таблицу содержания и мне нужно перебирать рекурсией, что трудно.
Как разобрать этот xml на структуру, чтобы иметь возможность легко распечатать его i.e в html?
Какой код у вас до сих пор? Вы просто хотите «распечатать» первую структуру на второй странице? – GeckStar
Что вы сделали до сих пор? – Muctadir
Я хотел бы иметь структуру из того, что буду читать содержание и печатать – user1005101