bobby
Invité n'ayant pas de compte PHPfrance
12 juil. 2010, 15:16
J'ai des fichiers XML assez volumineux (jusque 10Mo) et je veux faire une recherche qui mix recherche libre et recherche par critère. Voici un exemple de fichier XML :
<?xml version="1.0" encoding="UTF-8"?>
<produits>
<produit>
<trademark>Renault</trademark>
<title>Renault Clio TDI 95 CV</title>
<desc>Renault Clio 5 portes gris metalisé</desc>
<full_desc/>
<url><![CDATA[
http://www.toto.com]]></url>
<other/>
<price currency="EUR">14099</price>
<tax>
<name/>
<price currency="EUR"/>
</tax>
<shipping>
<delivery>Livrable au plus tard le 26/10/2010</delivery>
<price currency="EUR"/>
</shipping>
<category>
<merchant>
<name>Clio</name>
<id/>
</merchant>
</category>
<storeData>
<data type="Modele">TDI 95CV</data>
<data type="Carburant">Diesel</data>
<data type="Prix catalogue">18999.00</data>
<data type="Reduction pourcentage">13.5</data>
<data type="Reduction montant">4900</data>
<data type="Emission CO2">135 g/km</data>
<data type="motorisation" unit="cm 3">95 ch</data>
<data type="nbportes">5</data>
<data type="boite">Automatique</data>
<data type="Coloris">Sur mesure</data>
</storeData>
</produit>
</produits>
Je dois pouvoir faire une recherche libre sur <trademark>, <title>, <desc> et sur les <data type>.
Je dois aussi pouvoir faire une recherche sur critère (Essence/diesel, nombre de portes...) sur les <data type>
J'avais commencé en utilisant xpath/xquery, mais je suis confronté à plusieurs problèmes :
- je n'ai pas trouvé le moyen de faire une recherche qui matche le contenu partiel d'une balise (par exemple une recherche sur "clio" dans la balise <title> doit matcher, actuellement cela ne matche que lorsque je recherche le contenu exact "Renault Clio TDI 95 CV" )
- les requètes sont sensibles à la casse
- difficulté de rechercher dans des balises situées à des niveaux différents dans l'arborescence
Merci par avance pour vos compléments de réponses.