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>
  
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>
 +
 
 +
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:


Documents XML (tech)Développement DSM

Outils personnels