tags auto-fermants & (versus) tags vides...

Eléphant du PHP | 369 Messages

14 nov. 2009, 16:25

Salut les gens,

Beaucoup de questions à ce sujet mais toujours la même réponse.

< En XML, toutes les balises vides sont converties en auto-fermée. >

Ma question, donc, est celle-ci: Le DOM peut-il (par une fonction X ou Y) renvoyer un code décimal
concernant ce type particulier de balises? Existerait-il une fonction -même non documentée- qui puisse
faire cela?

Pour info: J'ai beaucoup cherché avant de poster mais rien (à part la ligne plus haut).
Ici même, du reste, j'ai trouvé un post s'approchant un peu de ca:
xml/balises-auto-fermante-t240542.html?hilit=balise mais...

Simple rappel des codes décimaux renvoyés par DOM:
XML_ELEMENT_NODE (entier) 1 Le noeud est un DOMElement
XML_ATTRIBUTE_NODE (entier) 2 Le noeud est un DOMAttr
XML_TEXT_NODE (entier) 3 Le noeud est un DOMText
XML_CDATA_SECTION_NODE (entier) 4 Le noeud est un DOMCharacterData
XML_ENTITY_REF_NODE (entier) 5 Le noeud est un DOMEntityReference
XML_ENTITY_NODE (entier) 6 Le noeud est un DOMEntity
XML_PI_NODE (entier) 7 Le noeud est un DOMProcessingInstruction
XML_COMMENT_NODE (entier) 8 Le noeud est un DOMComment
XML_DOCUMENT_NODE (entier) 9 Le noeud est un DOMDocument
XML_DOCUMENT_TYPE_NODE (entier) 10 Le noeud est un DOMDocumentType
XML_DOCUMENT_FRAG_NODE (entier) 11 Le noeud est un DOMDocumentFragment
XML_NOTATION_NODE (entier) 12 Le noeud est un DOMNotation
Afin d'être complêt:
- J'appel un script xml (script ou file osef)
- Je le parse par les fonctions dom
- Je recois via DOM -> nodeType le type et effectue un traitement dessus:
> Je transforme le Type 1 en 2 s'il est vide [*]
> Si le type est un tag ouvert j'empile DOM -> nodeName
- J'incrémente de 2 tous les autres types
- Je créé un objet et y sauvegarde les données recues
- ...

Ca marche, en gros ma class est presque finie mais reste ce soucis des auto-fermantes[*].
Procéder ainsi c'est présumer qu'une balise vide est auto-fermée donc... C'est pas très propre.
D'autre part, l'inverse est aussi vrai. Si une balise est "auto-fermante" elle peut devenir, de par ce
traitement, une balise bloc... bref...

Si l'un de vous a une idée...

@+ les gens et merci d'avance.

PS: ...arf, vous aussi vous trouvez que c'est une question biz...? ;)

EDIT: Désolé pour le paté, j'ai juste essayé d'être le plus clair possible, hein ;)

Eléphant du PHP | 369 Messages

21 nov. 2009, 10:06

Hi all,

Bon... Si personne ne sait je peux imaginer qu'une telle fonction n'existe pas... Ou est très
bien cachée lol. Je vais rester avec l'acte "probable". Comprendre: Balise vide = balise auto-fermante.
Du reste DOM -> saveXML() fait de même donc je vais éviter d'être plus royaliste que le Roi.
Ca m'ennuie mais, bah...

@+ les gens, bon WE et bon code ;)

PS: 'fin, hésitez pas à poster si jamais vous avez une idée, on sait jamais ;)