Question
Quelle est la meilleure façon de rechercher des documents XML en utilisant XPath dans Delphi7?
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.