====== HW05 - XML dokument ======
^ Termín odevzdání | 25.11.2024 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é '''', ''
| ''
* nepárové '''', ''''
* 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('')
(False, None, [])
==== Příklad 2 ====
xml('10ahoj svete')
(True, 5, ['a', 'b', 'c', 'd'])
==== Příklad 3 ====
xml('10 | 20 |
|
')
(True, 7, ['table', 'tr', 'td', 'img'])