« XPath (xmldoc) » : différence entre les versions

De Wiki1000
(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 ...)
 
Aucun résumé des modifications
 
(2 versions intermédiaires par le même utilisateur non affichées)
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.'''
<source lang='delphi'>
<source lang='delphi'>
procedure foo(doc:TxmlDocument);
procedure foo(doc:TxmlDocument);
Ligne 26 : Ligne 60 :
</source>
</source>


Cet exemple retourne tous les éléments "C" du document
'''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


<pre>
<pre>

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

}}