Question

Quelle est la meilleure façon de rechercher des documents XML en utilisant XPath dans Delphi7?

Était-ce utile?

La solution

Cela dépend de la taille du document XML. Mais j'ai une bonne expérience avec les deux MSXML et son homologue saxon.

Si le fichier XML est grand (> 50 Mo) ou les requêtes sont lourds (utiliser une // pour faire votre exploration du système) Attendez-vous à temps de retard. Mais sinon il est tout à fait faisable.

Dans les versions ultérieures, MSXML est disponible comme une unité. Dans la version 7, vous devez installer une bibliothèque de type:

  • Accédez au projet \ Import bibliothèque de type
  • Sélectionnez Microsoft XML, (la plus haute version que vous pouvez trouver)
  • Sélectionnez Créer une unité pour créer MSXML_TLB

Vous pouvez utiliser MSXML_TLB pour lire les documents XML, utilisez xslt et effectuer des requêtes XPath:

var
  doc  : IXMLDomDocument2;
  list : IXMLDomNodeList;
  node : IXMLDomNode;
  i    : Integer;

begin
  doc := CoDOMDocument.Create;
  doc.load(xmlfilename); 

  list := doc.selectNodes(xpath);
  for i := 0 to list.length-1 do begin
    node := list.item[i];
    if node<>nil then
      Memo1.Lines.Add(node.nodeName);
  end;
end;

Autres conseils

Quand je dois traiter avec des fichiers XML dans Delphi j'utilise toujours OmniXML , un composant que j'ai été utilisé pendant des années. Je suis tout à fait heureux avec elle, surtout parce qu'il est léger, facile à utiliser et libre .

Et cela fonctionne avec XPath d'une manière facile aussi. Il vaut la peine d'essayer, je l'espère vous aide aussi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top