XPath (xmldoc)
De Wiki1000
(Différences entre les versions)
(Nouvelle page : <source lang='delphi'>function XPath(const iExpression:string):TxmlPath;</source> Cette fonction exécute une expression XPath et retourne un résultat pouvant être un ensemble de ...) |
|||
Ligne 13 : | Ligne 13 : | ||
Exemple: | Exemple: | ||
+ | |||
+ | '''Utilisation du résultat comme un ensemble d'éléments.''' | ||
<source lang='delphi'> | <source lang='delphi'> | ||
procedure foo(doc:TxmlDocument); | procedure foo(doc:TxmlDocument); | ||
Ligne 26 : | Ligne 28 : | ||
</source> | </source> | ||
− | + | '''Utilisation du résultat comme un itérateur d'élément.''' | |
+ | <source lang='delphi'> | ||
+ | procedure foo(doc:TxmlDocument); | ||
+ | var elt:TxmlItem; idx:Integer; elt:TxmlItem; | ||
+ | begin | ||
+ | doc := TxmlDocument.Create(nil); | ||
+ | doc.loadFromFile('c:\test.xml'); | ||
+ | // | ||
+ | foreach elt in doc.XPath('//C') do | ||
+ | showMessage(xpt.Items[idx].GetAttribute('Id','')); | ||
+ | end; | ||
+ | </source> | ||
+ | |||
+ | '''Utilisation des noeuds du résultat.''' | ||
+ | <source lang='delphi'> | ||
+ | procedure foo(doc:TxmlDocument); | ||
+ | var xpt:TxmlPath; idx:Integer; elt:TxmlItem; | ||
+ | begin | ||
+ | doc := TxmlDocument.Create(nil); | ||
+ | doc.loadFromFile('c:\test.xml'); | ||
+ | // | ||
+ | xpt := doc.xPath('//C'); | ||
+ | for idx:=0 to xpt.Count-1 do | ||
+ | showMessage(xpt.Nodes[idx].QName); | ||
+ | end; | ||
+ | </source> | ||
+ | |||
+ | Ces exemples retournent tous les éléments "C" du document | ||
<pre> | <pre> |
Version du 10 août 2009 à 17:03
function XPath(const iExpression:string):TxmlPath;
Cette fonction exécute une expression XPath et retourne un résultat pouvant être un ensemble de noeud, une valeur numérique, une valeur chaîne ou une valeur logique.
Result | Un objet TxmlPath contenant le résultat. |
iExpression | Expression XPath a exécuter. |
Exemple:
Utilisation du résultat comme un ensemble d'éléments.
procedure foo(doc:TxmlDocument); var xpt:TxmlPath; idx:Integer; elt:TxmlItem; begin doc := TxmlDocument.Create(nil); doc.loadFromFile('c:\test.xml'); // xpt := doc.xPath('//C'); for idx:=0 to xpt.Count-1 do showMessage(xpt.Items[idx].GetAttribute('Id','')); end;
Utilisation du résultat comme un itérateur d'élément.
procedure foo(doc:TxmlDocument); var elt:TxmlItem; idx:Integer; elt:TxmlItem; begin doc := TxmlDocument.Create(nil); doc.loadFromFile('c:\test.xml'); // foreach elt in doc.XPath('//C') do showMessage(xpt.Items[idx].GetAttribute('Id','')); end;
Utilisation des noeuds du résultat.
procedure foo(doc:TxmlDocument); var xpt:TxmlPath; idx:Integer; elt:TxmlItem; begin doc := TxmlDocument.Create(nil); doc.loadFromFile('c:\test.xml'); // xpt := doc.xPath('//C'); for idx:=0 to xpt.Count-1 do showMessage(xpt.Nodes[idx].QName); end;
Ces exemples retournent tous les éléments "C" du document
<A> <B> <C id="11"/> <C id="12"/> <C id="13"/> </B> <B> <C id="21"/> <C id="22"/> <C id="23"/> </B> </A>
Les six éléments C sont retournés.
Voir aussi: