Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > XSL & XSLT
XSL & XSLT Forum d'entraide pour les extensions XSL et XSLT permettant de manipuler vos documents XML à l'aide de feuilles de style et de transformations avec PHP. Avant de poster -> tutoriels XSL et XSLT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/11/2007, 20h35   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 2
Points : 2
Par défaut [XSLT] Parseur XML : correction des erreurs détéctées

salut ,

voila j'ai un projet qui consiste à transformer un fichier html en fichier xml , dans le but de séparer le contenu et le style donc le resultat doit etre plus précisement un fichier xhmtl
il faut que l'outil prend en considération la correction des balises non fermé, de corriger la case , etc ..et de transformer les attributs et balises de forme en classes de style ..

Aprés avoir commencer une solution , parcourant le fichier et detectant les balises ouvrantes et fermante afin de faire les traitements nécessaires , j'ai découvert qu'on peut faire un analyseur syntaxique par php ..et ceci prend en charge une grande partie de la solution avec un peu de code, le probleme c'est que il ne suffit pas de détécter les erreurs , comme le fait le parseur xml , mais de les corriger ..le fait de traiter les erreurs pour les corriger me semble un peu compliqué ..afin que quelqu'un de vous puisse réfléchir avec moi !!

je vous donne un exemple
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
<?php
function ouverture ($parser, $name, $attrs){
 
/*ici je dois
-réafficher la balise 
-traiter le tableau attrs pour en créer des classes de style
- vérifier s'il s'agit d'un balise de style par exp <center> pout remplacer par css*/
 
}
function fermeture ($parser, $name){
 
//réafficher la balise de fermeture 
 
}
 
function texte ($parser, $data_text){
 
//afficher le texte 
 
}
 
 
 
$xml_parseur = xml_parser_create(); 
xml_set_element_handler($xml_parseur, "ouverture", "fermeture");
xml_set_character_data_handler($xml_parseur, "texte");
 
 
$fp = fopen("essai.xml", "r+") or die("Fichier introuvable. L'analyse a ete suspendue");
 
$fp = fopen("essai.xml", "r") or die("Fichier introuvable. L'analyse a ete suspendue");
 
while ($fdata = fread($fp, 2048)){
	xml_parse($xml_parseur, $fdata, feof($fp)) or die(
		sprintf("Erreur XML : %s à la ligne %d\n",
		xml_error_string(xml_get_error_code($xml_parseur)),
		xml_get_current_line_number($xml_parseur))
		);
 
/*ici en cas d'erreur, par exemple une balise fermente erroné , le pareur détécte l'erreur et on peut récupérer son code et son emplacement , et il s'arrete à ce niveau ,, la problématique mnt est de récuperer le code erreur pour faire la correction nécessaire et poursuivre l'analyse ..peut etre ecrire dans le fichier au fur et à mesure  avec fputs ? A vous ! */
 
}
 
?>
Pouvez vous réfléchir avec moi ..d'avance merciii

serenity
serenity est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 23h33   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 827
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 827
Points : 3 459
Points : 3 459
Il me semble que Tidy le bien-nommé fait tout cela
http://www.php.net/tidy
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 07h08   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 2
Points : 2
ouiii , je sais que tidy le fait
mais c'est ça le but de mon projet

J'attends votre aide
merci
serenity est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h38.


 
 
 
 
Partenaires

Hébergement Web