Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Réf. : Re: GetChildNodes

[xml-tech] Réf. : Re: GetChildNodes

Auteur: Pascal EMMA (laltruiste) <pe@laltruiste.com>
Date: 27/09/2006 - 05:47
X-Mailer: IncrediMail (4001888)

Bonjour,
Il faut toujours tester le type des noeuds avant de les "caster" avec ceci :

if(children.item(i).getNodeType() == Node.ELEMENT_NODE){
    Element elt = (Element)children.item(i);
    //...
}

 Si ce test n'est pas effectué, alors vous aurez droit à des exceptions dans
le cas ou les noeuds seraient du type NODE_TEXT ou autres.

Cordialement,
Pascal EMMA

-------Message original-------
 
De : sjarlier@stradefi.com
Date : 09/26/06 22:20:08
A : xml-tech@xmlfr.org
Sujet : [xml-tech] Re: GetChildNodes
 
Oui pardon, vous avez raison. Je ne sais pas si je peux tout expliquer comme
ca:
Dans le fichier XML dimRuleElt a pour valeur l'élément CHILD qui a pour id
"Human Resources". C'est bien pour cela que je ne comprends pas pourquoi cet
élément a 4fils. Il devrait en avoir que 2. Et apparemment j'ai une
exception Cast en faisant ca: Element elt = (Element)children.item(i); et je
ne vois pas pourquoi...
 
Merci pour votre reponse
Sophie
 
-----Message d'origine-----
De : sjarlier@stradefi.com [mailto:sjarlier@stradefi.com
>mailto:sjarlier@stradefi.com">sjarlier@stradefi.com
[mailto:sjarlier@stradefi.com]
Envoyé : mardi 26 septembre 2006 17:07
À : 'xml-tech@xmlfr.org'
Objet : [xml-tech] GetChildNodes
 
Hello,
 
I hope you will agree to help me. I get into troubles while getting the
children of a node.
 
Here is the part of my XML that I want to parse:
 
<child id="Human Resources" level="70" active="true">
 
<labels>
<label xml:lang="en">Human Resources</label>
<label xml:lang="fr">Ressources Humaines</label></labels>
 
<children>
 
    <child id="Human Resources Ost Schweiz" level="60" active="true">
 
    <labels>
    <label xml:lang="en">Human Resources Ost Schweiz</label>
     <label xml:lang="fr">Ressources Humaines Suisse
Est</label></labels></child>
 
     <child id="Human Resources West Schweiz" level="60" active="true">
 
      <labels>
      <label xml:lang="en">Human Resources West Schweiz</label>
       <label xml:lang="fr">Ressources Humaines Suisse
Ouest</label></labels></child></children></child></children></child></childr
en></child>
 
And here is the code:
 
   public List<String> getDimChildren(Element dimRuleElt, int nbChild)
  {
   List<String> listIds = new ArrayList<String>();
 
   try{
 
     int iter = 0;
     while(dimRuleElt.hasChildNodes() && iter<nbChild)
     {
     NodeList children =
dimRuleElt.getChildNodes();
     logger.info("children
size"+children.getLength()); // I AM GETTING 4 CHILDREN WHY?
 
     for(int i=0; i<children.getLength(); i++)
     {
     Element elt =
(Element)children.item(i);
// WHY IS IT WRONG HERE? I CAN DO THIS CAST
     String tagname = elt.getTagName();
     logger.info("tagname= "+tagname);
     if(tagname.equals("child"))
     {
     String name =
elt.getAttribute("id");
     listIds.add(name);
     }
 
     listIds.addAll(getDimChildren(elt,
nbChild-1));
     }
     }
 
   }catch(Exception e){
    System.err.println("Exception :");
    e.printStackTrace();
   }
   return listIds;
  }
 
And here is the error I am getting:
java.lang.ClassCastException: org.apache.xerces.dom.DeferredTextImpl
 
Do you see what I am doing wrong here?
Thanks
Sophie
 
 
--
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)
 
 
 
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.12.9/456 - Release Date: 25/09/2006
 
.

-- Binary/unsupported file stripped by Ecartis --
-- Err : No filename to use for decode, file stripped.
-- Type: image/gif

--
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)
Received on Wed Sep 27 07:47:55 2006

Archive générée par hypermail 2.1.8 le 27/09/2006 - 05:52 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement