XPath (xmldoc)

De Wiki1000
(Différences entre les versions)
 
(Une révision intermédiaire par un utilisateur est masqué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

Version actuelle en date du 3 septembre 2013 à 11:45

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:

Récupérer le texte d'un élément

<?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>
procedure getOctoPushTicket();
var doc:TxmlDocument; 
begin
  doc := TxmlDocument.Create(nil);
  doc.loadFromFile('c:\ticket.xml');
  showmessage(doc.xPath('//octopush/ticket').AsString);
end;

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;

Utilisation comme un itérateur de noeuds

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;


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:


Documents XML (tech)Développement DSM





Whos here now:   Members 0   Guests 0   Bots & Crawlers 1
 
Outils personnels