Parser XHTML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Parser XHTML

Re: Parser XHTML

par devlop78 » 07 févr. 2011, 02:18

Lol, c'est vrai que http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd n'est pas accessible. Ca serait quand même pas de bol que ce soit la cause ^^ Au pire, j'en trouve un exemplaire et je l'héberge chez moi ^^

Re: Parser XHTML

par stealth35 » 07 févr. 2011, 02:02

visiblement les DTD n'ont pas l'air accessible en ce moment c'est peu être la ça que ca coince :wink:
y'a eu pas mal de soucis avec SOAP ces derniers temps : http://www.developpez.net/forums/d10291 ... ble-matin/

Re: Parser XHTML

par devlop78 » 07 févr. 2011, 01:43

Pour être fixé, j'ai essayé avec :
new Document ("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html>
<head>
<title>CouCou</title>
</head>
<body>
<form>
<p>
<label for=\"coucou\">Exemple</label> <input type=\"text\" value=\"\" name=\"coucou\" id=\"coucou\" />
</p>
</form>
</body>
</html>
");
et le code qui sort :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head><title>CouCou</title></head>
<body>
<form>
<p>
<label for="coucou">Exemple</label> <input type="text" value="" name="coucou" id="coucou"></p>
</form>
</body>
</html>
En dehors du fait qu'il m'a réindenté le texte... c'est le input qui me gène. Et en plus, il me change mes selected="selected" en simple selected.

Grrrrrr :twisted:

Re: Parser XHTML

par devlop78 » 07 févr. 2011, 01:39

Euhhh ... Je peux pas montrer le code hohoho, l'application que je développe n'existe pas encore ^^

Donc, dans le cas de l'application que je développe actuellement, qui est plus important que l'application de mon client (qui est une application spécifique, et à court terme).

Actuellement, je suis en phase (enfin hier, j'ai superbement avancé) de développement. Donc pas de travail de modélisation objet. J'ai supprimé toutes les méthodes de modification du code HTML (mais mes balises sont qd même modifiées) :
new Document ('<html><head>....</html>');

class Document {

function __construct ($code) {

if (substr(trim($code),0,9) != '<!DOCTYPE') $code = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" . $code;
$document = $this->document = new DOMDocument();
$document->loadHTML($code);

echo $document->saveHTML();

}

}

Re: Parser XHTML

par stealth35 » 07 févr. 2011, 01:19

Il y a pourtant un soucis. En plus, j'ai dit une bêtise : les deux applications sont touchées (en fait j'avais regardé la page de l'une à un moment où elle n'est pas manipulée =D> )
montre comment tu fais :wink:

Re: Parser XHTML

par devlop78 » 07 févr. 2011, 01:12

Il y a pourtant un soucis. En plus, j'ai dit une bêtise : les deux applications sont touchées (en fait j'avais regardé la page de l'une à un moment où elle n'est pas manipulée =D> )

Re: Parser XHTML

par stealth35 » 06 févr. 2011, 20:57

normalement si le DTD est mis y'a pas de soucis

Re: Parser XHTML

par devlop78 » 06 févr. 2011, 05:47

Ca y est ! Deux appli faites avec !

J'ai eu à certains moments des soucis ... notamment avec foreach() lorsque je supprimais (il s'arrêtait, comme en AS3 sur des Array).

Par contre, j'ai toujours un soucis ... Mes balises auto-fermantes sont automatiquement mises non fermées (alors que le code HTML source donné a un code bien comme il faut).

<input .. /> devient donc <input .. >

Re: Parser XHTML

par AB » 03 févr. 2011, 03:37

DOMDocument suffis :wink: , il peut même réparé ta source.
Ah oui ? J'ai toujours cru que le parseur DOM plantait si le document XML n'était pas syntaxiquement correct, tu en es sur ?
C'est loadXML qui plante si la syntaxe n'est pas bonne mais pas loadHTM.

Re: Parser XHTML

par devlop78 » 03 févr. 2011, 02:05

Géniale, la fonction fonctionne. Par contre, je vais le relier à la classe de gestion des erreurs, mais il me faudrait déjà savoir s'il y a eu une erreur ... Or là la fonction s'affiche, mais pas l'erreur (et c'est seulement avec l'autoload en local, car l'une de mes classes qui charge les fichiers et classes de pages m'affiche bien mes parse error).

Re: Parser XHTML

par devlop78 » 03 févr. 2011, 01:58

Zut ... j'ai pas reçu d'email me notifiant ta réponse. Non précisément. J'ai du coup fait un fichier compil.php (nom à la volée) où j'écris "Chargement du fichier x" et je fais l'include. Et là miracle, en local, les erreurs apparaissent, alors qu'elles n'apparaissent pas en hébergement de prod. Pourtant pas de désactivation d'erreurs ...

Je vais regarde le lien donné. Je rappelle aux lecteurs que c'est un problème de PARSE ERROR et non de Notice, Fatal error, ceux là s'affichent bien

Re: Parser XHTML

par stealth35 » 01 févr. 2011, 11:25

Je verrai en développant le moteur. Là je code un mini framework (lol ...) avec pas mal de classes, mais je suis assez satisfait (non sans mal) de la répartition des responsabilités. Par contre c'est HS par rapport au sujet, mais quelle alternative puis-je avoir à l'autoload pour qu'il évite de me mettre une page blanche lors d'un Parse Error dans une de mes classes (en dev c'est quand même pas pratique, je suis en plus obligé d'enlever le .htaccess protégeant mes classes et d'appeler classe par classe pour voir l'erreur ... souvent un oubli de parenthèse ^^).
normalement il te dit dans quelle fichier y'a une erreur ? sinon tu pourrais gérer ca avec register_shutdown_function

Re: Parser XHTML

par devlop78 » 01 févr. 2011, 04:42

Je verrai en développant le moteur. Là je code un mini framework (lol ...) avec pas mal de classes, mais je suis assez satisfait (non sans mal) de la répartition des responsabilités. Par contre c'est HS par rapport au sujet, mais quelle alternative puis-je avoir à l'autoload pour qu'il évite de me mettre une page blanche lors d'un Parse Error dans une de mes classes (en dev c'est quand même pas pratique, je suis en plus obligé d'enlever le .htaccess protégeant mes classes et d'appeler classe par classe pour voir l'erreur ... souvent un oubli de parenthèse ^^).

Re: Parser XHTML

par stealth35 » 01 févr. 2011, 00:59

DOMDocument suffis :wink: , il peut même réparé ta source.
Ah oui ? J'ai toujours cru que le parseur DOM plantait si le document XML n'était pas syntaxiquement correct, tu en es sur ?
il fait comme les navigateurs, si le DOM est foireux il va quand même sortir quelque chose,mais si c'est vraiment bien bien naze là il pourra rien faire, par contre les erreurs sont activés par défaut il suffis de déactiver le rapport avec libxml_use_internal_errors :wink:

Re: Parser XHTML

par Genova » 01 févr. 2011, 00:23

DOMDocument suffis :wink: , il peut même réparé ta source.
Ah oui ? J'ai toujours cru que le parseur DOM plantait si le document XML n'était pas syntaxiquement correct, tu en es sur ?