From: Laurent Forêt (l.foret@korom.net)
Date: 09/05/2001 - 08:16
> -----Message d'origine-----
> De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
> part de Dominique desmet
> Envoyé : samedi 5 mai 2001 21:04
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] Acceder aux informations de la DTD
>
>
> L'API DOM permet d'explorer un noeud de type DocumentType.
> Cela permet entre autres chose d'explorer les éléments de type <!ENTITY
> ....> et <!NOTATION ...>
>
> Je souhaiterais explorer les éléments de type <!ELEMENT ...> et
> <!ATTLIST...
> > et je ne vois pas comment faire.
> Quelqu'un a-t-il une idée?
>
> A mes heures perdues j'essaye de développer un editeur XML; il en existe
> beaucoup je sais, mais la curiosité ....
> Je bute sur la manière de vérifier la saisie de nouveaux noeuds
> en proposant
> selon le contexte ceux qui sont autorisés
>
Pour répondre simplement à la question : org.w3c.dom.Node.getNodeType()
permet d'avoir le type du noeud courant et de réagir en fonction.
Pour développer un peu :
L'api DOM permet plus que cela, elle permet d'avoir un document xml dans une
structure d'arbre.
Une fois parser, avec un DOM Parser, (perso. j'utilise Xerces) tu peux
récupérer ton document
dans un org.w3c.dom.Document et tu peux accéder à chaque noeud,
org.w3c.dom.Node.
avec la méthode pour obtenir le noeud racine à partir d'un Document :
getDocumentElement() qui retourne un Node .
Pour créer un Document vide, avec Xerces : Document doc = new
DocumentImpl();
pour obtenir les infos sur les noeuds tu as les getters et setters suivant :
getNodeType() getNodeName() getNodeValue() setNodeValue()
Ce qui te permet pas d'éditer le noeud, comme par exemple changer le nom
d'un Element.
Pour celà, tu es obligé de faire une copie de ton noeud mais avec un nom
différend et de l'insérer à la place de l'ancien.
Pour manipuler la structure de l'arbre tu as les méthodes suivantes dans la
classe Node :appendChild(), insertBefore() ,
Pour rajouter des attributs à tes éléments, dans la classe Element tu as :
setAttribute(), removeAttribute().
Entre parenthèse, j'ai entendu dire qu'il existait une API JDom
(www.jdom.org) bien plus simple que l'api DOM défini par le w3c.
Ce qui à l'air d'être vrai.
Hope, it helps.
-------------------------------------
Laurent Forêt
Service développement
l.foret@korom.net
www.korom.net
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|