HW05 - XML dokument

Termín odevzdání 20.11.2022 23:59 CET
Bodový zisk 6b

Zadání

Cílem úlohy je provést validaci strukturovaného textu (XML) ve formě textového řetězce obecné délky, který je argumentem funkce.

V úloze uvažujeme pouze slova bez diakritiky. Za XML dokument budeme považovat takový textový řetězec, který začíná libovolným XML tagem. V řešení není dovoleno použití externích knihoven.

Odevzdání

  • Do BRUTE odevzdejte soubor validace.py, který bude obsahovat funkci xml s jedním argumentem - textovým řetězcem.
  • Informace v textovém řetězci je strukturována pomocí XML značek.
  • XML značky jsou
    • párové <a></a>, <td></td>
    • nepárové <b/>, <img/>
  • Ve vstupním textu se mohou objevit oba druhy.
  • Párovost / nepárovost značek zde není určena definicí, ale pouze zápisem (tj. kombinací znaků <, > a /).
  • Návratovou hodnotou funkce je n-tice, jejíž první položkou je logická hodnota, reprezentující validitu XML textu, druhou je počet celkem nalezených tagů a třetí seznam s nalezenými (unikátnimi) tagy ve validním XML. Pokud je XML text nevalidní, počet tagů bude None a seznam bude prázdný.

Příklady

Příklad 1

xml('<a><b></a></b>')
(False, None, [])

Příklad 2

xml('<a><b>10</b><c>ahoj svete</c><d/><d/></a>')
(True, 5, ['a', 'b', 'c', 'd'])

Příklad 3

xml('<table><tr><td>10</td><td>20</td></tr><tr><td><img/></td></tr></table>')
(True, 7, ['table', 'tr', 'td', 'img'])

courses/bab37zpr/hw/hw05.txt · Last modified: 2022/10/31 20:28 by viteks