TXMLBrowser.ToChild
| TXMLBrowser = class (TObject) | Interface de TXMLBrowser | Exemples de TXMLBrowser |
Navigue vers le sous-noeud indiqué
Syntaxe
procedure ToChild(name: String)
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
+ ' <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'