TXMLBrowser.ToChild

TXMLBrowser = class (TObject)Interface de TXMLBrowserExemples de TXMLBrowser

Navigue vers le sous-noeud indiqué

Syntaxe

procedure ToChild(name: String)
name: chemin du sous-noeud sur lequel on souhaite se positionner

Remarques

On indique un chemin de navigation relatif au noeud courant.
Les noms de noeuds sont séparés par '/'.

La fonction accepte '..' pour indiquer le noeud parent dans le chemin. Ainsi, '../..' remonte de 2 niveaux dans l'arborescence.

Si plusieurs sous-noeuds de même nom existent, le browser se positionnera sur le premier dans l'ordre du fichier.

S'il n'existe aucun sous-noeud avec le chemin demandé, le XMLBrowser ne provoque pas d'erreur : il se positionne sur un noeud virtuel, dont le nom est une chaîne vide, dont le texte est une chaîne vide et qui n'a pas d'enfant.

La recherche des noms des sous-noeuds n'est pas sensible à la casse (s'il existe un sous-noeud 'toto', il sera indifféremment retrouvé avec 'toto', 'Toto', 'TOTO').

Pour se déplacer selon un chemin absolu par rapport à la racine, utiliser Path.

Exemples

var xmlData : String = '<RootNode>'
                     + ' <Node1>'
                     + '  <Node1_1>TEST1-1</Node1_1>'
                     + '  <Node1_2>TEST1-2</Node1_2>'
                     + ' </Node1>'
                     + ' <Node2>TEST2</Node2>'
                     + ' <Node2>TEST3</Node2>'
                     + '</RootNode>';

var browser:=TXMLBrowser.Create(xmlData);

browser.ToChild('Node2');  // on se positionne sur le premier noeud 'Node2'
PrintLn(browser.NodeText); // => renvoie 'TEST2'
browser.ToParent;          // on retourne au noeud parent RootNode

browser.ToChild('NODE2');  // on se positionne sur le premier noeud 'Node2'
PrintLn(browser.NodeText); // => renvoie 'TEST2'
browser.ToParent;          // on retourne au noeud parent RootNode

browser.ToChild('aaa');    // on se positionne sur un noeud virtuel qui permet de naviguer comme s'il existait
PrintLn(browser.NodeText); // => renvoie une chaîne vide
browser.ToParent;          // on retourne au noeud parent RootNode

browser.ToChild('node1/NODE1_1'); // on se positionne sur le premier noeud 'Node1' et sur son premier sous-noeud 'Node1_1'
PrintLn(browser.NodeText);        // => renvoie 'TEST1-1'
browser.ToChild('../NODE1_2');    // on retourne sur le noeud parent et on se positionne sur son premier sous-noeud 'Node1_2'
PrintLn(browser.NodeText);        // => renvoie 'TEST1-2'
browser.ToChild('..');            // on retourne sur le noeud parent 'Node1'
PrintLn(browser.Path);            // => le chemin courant est bien '/RootNode/Node1'

Classification

XMLDirect TXMLBrowser