In dem Modul XMLCombinators werden Funktionen definiert, die auf dem Datentyp XML arbeiten. XML ist ein Baum aus XMLNodes.
Es gibt Funktionen zum Erzeugen der verschieden Elementtypen, zum Testen auf Bedingenungen und zum Navigieren im Baum. Weiter werden Funktionen zum bearbeiten z.B. aFoldTree oder aScanTree und zum Extrahieren definiert. Prädikatfunktionen runden das Set ab.
Sie folgenden Funktionen dienen der Navigation im XML-Baum:
qChildren liefert einen Filter, der die Liste an Kindern liefert:
qChildren | :: Filter (Tree a) (Tree a) |
qChildren | = makeFilter treeChildren |
qSubtree liefert ein Liste aus sich selbst und allen Kindern:
qSubtree | :: Filter (Tree a) (Tree a) |
qSubtree | = qSelf +++ (qChildren >>> qSubtree) |
qDescendants liefert eine Liste alle Kinder:
qDescendants | :: Filter (Tree a) (Tree a) |
qDescendants | = qChildren >>> qSubtree |