Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
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 18/01/2008, 15h51   #1
Membre du Club
 
Inscription : octobre 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 66
Points : 49
Points : 49
Par défaut [DOM] Domdocument load html, ajouter éléments valides html (xmlns ?)

Bonjour,

J'ai besoin d'utiliser loadHtml de la classe Domdocument ( afin de bénéficier de la tolérance syntaxique de cette méthode), mais mon document html devra pouvoir comporter des tags personnalisés.

Par exemple :

"<montag attr="valeur" />"

J'ai créé une dtd "test.dtd" dans laquelle je défini "montag" et j'essaye de déclarer l'espace de nom 'xmlns:myns="test.dtd"', puis dans le document :

<montag attr="valeur"/>

Ma Dtd est valide et "montag" aussi.

J'obtient l'erreur suivante lors du parsing PHP :

Citation:
<b>Warning</b>: DOMDocument::loadHTML() [<a href='function.DOMDocument-loadHTML'>function.DOMDocument-loadHTML</a>]: Namespace prefix xmlns of attribute myns is not defined in Entity, line: 2 in <b>test.php</b> on line <b>7</b>
Est-ce que je m'y prend mal pour déclarer mon NS, ou est-ce que tout simplement un NS n'est pas la bonne solution ?
BobLunique est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 16h05   #2
Membre du Club
 
Inscription : octobre 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 66
Points : 49
Points : 49
Je me répond tout seul.

Cela ne fonctionne pas avec loadHTML qui n'est apparement pas vraiment considéré comme un document XML ( et donc l'espace de nom n'est pas pris en compte )
BobLunique est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2008, 15h01   #3
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 92
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 92
Points : 25
Points : 25
Salut Bob,

as-tu réussi à lire, écrire dans un fichier HTML finallement ?

Je suis étonné que peu de personnes s'intéressent à ce problème (vu que les réponses sont assez rares).

Perso, j'ai juste réussi à charger un fichier HTML avec le loadHTML (c'est pas le nom exacte) mais j'ai un problème pour récupérer le node de ma DIV avec getElementById. Donc imposible d'ajouter des nouveaux nodes. Il faut passer par le javascript. C'est vraiment dommage mais je suis sur que c'est moi qui n'a pas la connaissance suffisante pour le faire.
raton_laveur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 15h34   #4
Invité de passage
 
Inscription : mars 2008
Messages : 1
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 1
Points : 1
Points : 1
Je me permet de répondre un an plus tard étant confronté au même problème.

J'ai utilisé simplehtmlparser : http://simplehtmldom.sourceforge.net/

Cela accepte le html mal formé, voir n'importe quel fichier xml, en fait, il va se débrouiller pour fermer les balises.
Il va aussi les convertir en minuscule (cela peut poser problème) et fermer automatiquement quelques balises comme "link", "br", "input", "meta", etc... (voir code source).
Je me permet de le signaler car je tentait de parser un fichier rss, et cela posait problème, tous les <link>...</link> se transformait en un truc du genre <link />...$gt;/link&lt; , pubDate devenait aussi pubdate

Voilà, donc à utiliser en connaissance de cause
bingouly est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h07.


 
 
 
 
Partenaires

Hébergement Web