Recherche d'une balise xml tout en ignorant la casse?

Petit nouveau ! | 5 Messages

29 avr. 2010, 14:21

Bonjour tout le monde


j'utilise ce bout de code pour chercher une balise dans un document xml
$dom = new DomDocument();
$dom->load($xml);
$liste = $dom->getElementsByTagName($balise);

mais cette recherche est sensible à la casse(majuscule,minuscule) ce qui la rend rigide
je voudrais savoir s'il y avait une solution pour ce problème tout en signalant que je voudrais garder la recherche structurelle c'est à dire je veux pas ignorer la structure xml car j'aurais besoin plut tard.Merci beaucoup pour vos réponse.

ViPHP
ViPHP | 2287 Messages

29 avr. 2010, 15:51

Bonjour tout le monde


j'utilise ce bout de code pour chercher une balise dans un document xml
$dom = new DomDocument();
$dom->load($xml);
$liste = $dom->getElementsByTagName($balise);

mais cette recherche est sensible à la casse(majuscule,minuscule) ce qui la rend rigide
je voudrais savoir s'il y avait une solution pour ce problème tout en signalant que je voudrais garder la recherche structurelle c'est à dire je veux pas ignorer la structure xml car j'aurais besoin plut tard.Merci beaucoup pour vos réponse.
Bonjour,

Ce n'est pas la recherche mais les balises XML qui sont sensibles à la casse et tu ne vas pas pouvoir y changer grand-chose.

Ce que tu peux faire par contre, c'est faire en sorte que les balises xml soient écrites uniquement en minuscules (à l'enregistrement du fichier) et faire la même transformation au niveau de ta recherche. Sinon il y a d'autres possibilités mais qui vont t'imposer des modifications encore plus lourdes.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Petit nouveau ! | 5 Messages

29 avr. 2010, 17:29

Merci pour votre réponse,
le problème que je suis entrain de résoudre impose que le fichier xml vient de la part de l'utilisateur,donc c'est pas à moi de l'écrire?et je dois le valider c'est à dire analyser les composantes existantes,mais la recherche des composantes est rigide vue le problème de la casse pourriez vous me proposer une astuce.Merci d'avance

ViPHP
ViPHP | 2287 Messages

29 avr. 2010, 17:45

Merci pour votre réponse,
le problème que je suis entrain de résoudre impose que le fichier xml vient de la part de l'utilisateur,donc c'est pas à moi de l'écrire?et je dois le valider c'est à dire analyser les composantes existantes,mais la recherche des composantes est rigide vue le problème de la casse pourriez vous me proposer une astuce.Merci d'avance
Je ne comprends pas bien, peux-tu être plus explicite sur cette histoire de validation ?

Sinon, le fait que le fichier soit produit par un tiers ne t'empêche pas de poser des contraintes à ce tiers (c'est pas déraisonnable de demander que toutes les balises soient en minuscules, dans tout fichier XML il y a une grammaire plus ou moins imposée... Je ne connais pas de système qui exploite un fichier XML à la syntaxe 100% libre).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Petit nouveau ! | 5 Messages

29 avr. 2010, 19:37

Je travaille dans le cadre de mon projet fin d'étude sur le modèle d'accessibilité pour les gens handicapés d'ims
l'utilisateur a la possibilité de faire entrer son modèle(en supprimant les composantes dont il n'a pas besoin)
mais avant d'intégrer ce modèle dans la plateforme (moodle) je dois vérifier sa conformité à ims
c'est à dire l'analyser en cherchant les composantes valides existantes et dénoncer les composantes qui ne font pas partie d'IMS
mais lors de cette validation je trouve le problème de la casse.Merci beaucoup pour votre attention.

Petit nouveau ! | 5 Messages

30 avr. 2010, 02:52

Bonsoir
j'ai trouvée la solution la voila
function xml_minuscule($xml)
{

$rdir='fichier.xml';
//lecture du fichier de l'utilisateur
$dom = new DomDocument();
$dom->load($xml);
//convertion en chaine de caractère
$chaineXML = $dom->saveXML();
//Convertion en miniscule
$chaine= strtolower($chaineXML);
//sauvegarde en xml de nouveau
$dom->loadXML($chaine);
$dom->save($rdir);
return $chaine;

}
de cette facon la recherche sera sur le deuxième document :)