« XPath (xmldoc) » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 13 : | Ligne 13 : | ||
Exemple: | Exemple: | ||
'''Récupérer le texte d'un élément''' | |||
<source lang="xml"> | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<octopush> | |||
<error_code>000</error_code> | |||
<cost>0.069</cost> | |||
<balance>0</balance> | |||
<ticket>XXXSIMULATIONXXX</ticket> | |||
<sending_date>1378200246</sending_date> | |||
<number_of_sendings>1</number_of_sendings> | |||
<currency_code>€</currency_code> | |||
<successs> | |||
<success> | |||
<recipient>+336.......</recipient> | |||
<country_code>XXX</country_code> | |||
<cost>0.069</cost> | |||
</success> | |||
</successs> | |||
<failures/> | |||
</octopush> | |||
</source> | |||
<source lang=delphi> | |||
procedure getOctoPushTicket(); | |||
var doc:TxmlDocument; | |||
begin | |||
doc := TxmlDocument.Create(nil); | |||
doc.loadFromFile('c:\ticket.xml'); | |||
showmessage(doc.xPath('//octopush/ticket').AsString); | |||
end; | |||
</source> | |||
'''Utilisation du résultat comme un ensemble d'éléments.''' | '''Utilisation du résultat comme un ensemble d'éléments.''' | ||
Ligne 54 : | Ligne 86 : | ||
end; | end; | ||
</source> | </source> | ||
'''Utilisation comme un itérateur de noeuds''' | |||
<source lang='delphi'> | |||
procedure foo(doc:TxmlDocument); | |||
var elt:TxmlItem; idx:Integer; node:TxmlNode; | |||
begin | |||
doc := TxmlDocument.Create(nil); | |||
doc.loadFromFile('c:\test.xml'); | |||
// | |||
foreach node in doc.XPath('//C') do | |||
showMessage(node.QName); | |||
end; | |||
</source> | |||
Ces exemples retournent tous les éléments "C" du document | Ces exemples retournent tous les éléments "C" du document |
Dernière version du 3 septembre 2013 à 09:45
<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 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:
Récupérer le texte d'un élément <source lang="xml"> <?xml version="1.0" encoding="UTF-8"?> <octopush>
<error_code>000</error_code> <cost>0.069</cost> <balance>0</balance> <ticket>XXXSIMULATIONXXX</ticket> <sending_date>1378200246</sending_date> <number_of_sendings>1</number_of_sendings> <currency_code>€</currency_code> <successs> <success> <recipient>+336.......</recipient> <country_code>XXX</country_code> <cost>0.069</cost> </success> </successs> <failures/>
</octopush> </source>
<source lang=delphi> procedure getOctoPushTicket(); var doc:TxmlDocument; begin
doc := TxmlDocument.Create(nil); doc.loadFromFile('c:\ticket.xml'); showmessage(doc.xPath('//octopush/ticket').AsString);
end; </source>
Utilisation du résultat comme un ensemble d'éléments. <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.Items[idx].GetAttribute('Id',));
end; </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>
Utilisation comme un itérateur de noeuds <source lang='delphi'> procedure foo(doc:TxmlDocument); var elt:TxmlItem; idx:Integer; node:TxmlNode; begin
doc := TxmlDocument.Create(nil); doc.loadFromFile('c:\test.xml'); // foreach node in doc.XPath('//C') do showMessage(node.QName);
end; </source>
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:
{{#if:Documents XML (tech)|
{{#if:Documents XML (tech)|— Documents XML (tech) |}} — Développement DSM —
|
{{#if:|— [[{{{1}}}]] |}} — Développement DSM —
}}