Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [XML][DOM]getattribute [ Archives / Au secours ] (siropipo)

jeudi 2 juin 2005 à 23:08:35 | [XML][DOM]getattribute

siropipo

Bonsoir tous !

jai donc ce fichier xml :
<interpreter-configuration>
 <tags> 
  <tag id="01" name="tag1">
   <lenght>taille1</lenght>
   <data>value</data>
  </tag>
  <tag id="02" name="tag2">
   <lenght>taille1</lenght>
   <data>value</data>
  </tag>
 </tags>
</interpreter-configuration> 

Je souhaiterai recupéré le name de mon tag(attr name), sachant que je connais l'id(attr id), ainsi que le contenu de la balise lenght et data.

jai commencé a écrire ca mais je men sort pas... si vous pouviez m'aider a recuperer ces informations :

import java.lang.String;
import java.util.HashMap;
import java.util.Vector;
import org.xml.sax.*;
import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.*;

import java.io.*;

public class XML {

 public static void main(String args[]) throws Exception {
  XML m = new XML();
 }

 public XML() {
  RechercheXml();
 }

  public static Element findFirstElement( Element element, String name )
  {
        NodeList nl = element.getElementsByTagName( name );
        if ( nl.getLength() < 1 )
           throw new NullPointerException(
            "Element: "+element+" ne contient pas: "+name);
        return (Element)nl.item(0);
   }
 
  public static Vector trouveAttribut( Element element, String nom )
   {
        Vector attr        = new Vector(1);
        HashMap map            = new HashMap();
        Element elementNom    = element;
       if (nom != null)
           elementNom     = findFirstElement( element, nom );
        NamedNodeMap attributs = elementNom.getAttributes();

       for(int i=0; i<attributs.getLength(); i++)
        {
           Node numéro = attributs.item(i);
           map.put("nom",numéro.getNodeName());
           map.put("valeur",numéro.getNodeValue());
           attr.addElement(map);
       }
       
       
       return attr;
      }

  public static HashMap trouveAttribut(Node node)
   {
       HashMap map            = new HashMap();
       
       NamedNodeMap attributs = node.getAttributes();

       for(int i=0; i<attributs.getLength(); i++)
       {
           Node numéro = attributs.item(i);
           map.put("nom",numéro.getNodeName());
           map.put("valeur",numéro.getNodeValue());
       }
       return map;
   }
 
  public static String findText(Element element)
  {
          return element.getFirstChild().getNodeValue();
  
  }


 public void RechercheXml() {
  DOMParser parser = new DOMParser();
  String fichier = new String("c:/test/TLVConfiguration.xml");
  try
       {
           parser.parse(fichier);
       }
       catch (SAXException e)
       {
       }
       catch (IOException e)
       {
       }
       
       Document document = parser.getDocument();
       Element database = document.getDocumentElement();
       System.out.println(database);
      
       for (int i = 0; i < database.getLength(); i++)
       {
       NodeList tag = element.getElementsByTagName("FormatSortie");
       }

 }
}


Merci a vous ;)
bonne soirée.


vendredi 3 juin 2005 à 10:23:58 | Re : [XML][DOM]getattribute

mep

la valeur d'un attribut <balise ID="choucroute" />
=> node.getAttributes().getNamedItem("ID").getNodeValue()

samedi 4 juin 2005 à 13:44:53 | Re : [XML][DOM]getattribute

siropipo

yop !

oki dok mais le node je le definit ou comment ?

lundi 6 juin 2005 à 01:04:13 | Re : [XML][DOM]getattribute

JeanPoldeux

Membre Club
//Ouvrir un nouveau Parser
DOMParser parser = new DOMParser();

//Parser le fichier XML
parser.parse(filename);

//Atteindre l'élément racine de l'arborescence XML
Document doc = parser.getDocument();

//Obtenir une liste du premier niveau de noeuds du document
org.w3c.dom.NodeList nlObj = reader.getDocumentElement().getChildNodes();

//Traiter le noeuds
for(int i = 0; i < nlObj.getLength(); i++)
{
//Traiter le premier niveau
org.w3c.dom.Node node = nlObj.item(i);
String nodeName = node.getNodeName();
String idValue = node.getAttributes().getNamedItem("ID").getNodeValue();
//Obtenir le second niveau

org.w3c.dom.NodeList nlObj2 = node.getChildNodes();
for(int j = 0; j < nlObj2.getLength(); j++)
{
//Traiter les noeuds du second niveau
org.w3c.dom.Node node2 = nlObj2.item(i);
String nodeName2 = node2.getNodeName();
String idValue2 = node2.getAttributes().getNamedItem("ID").getNodeValue();

}
  }

Si tu veux descendre plus loin dans l'arbre, tu utilises la méthode getChildNodes() sur un élément node.
Attention en enchaînant les méthodes (
node.getAttributes().getNamedItem("ID").getNodeValue() ), si tu as un des éléments qui renvoit "null",
ca va planter en exécution et c'est parfois difficile de trouver où.

En espérant avoir ouvert la voie



@++


  Every problem has a solution. The difficulty is to find it out.  

lundi 6 juin 2005 à 13:34:35 | Re : [XML][DOM]getattribute

siropipo

Oki dok.

jai fais ca :
protected Document lectureFichier( String fileName )
 {
  DOMParser parser = new DOMParser( );

  try
  {
   parser.parse(fileName);
  }
  catch( Exception e )
  {
   // ERROR ou Warning
   return null;
  }
  return parser.getDocument( );
 }

apres de retour dans mon main je fais ca :
Document doc = lectureFichier(fich);
et si je laffiche il me dit ca :
[#document: null]

C'est pas normal ca? je comprends pourkoi kan je lui demande de trouver un attribut il me leve l'ecxeption NullPointer.
mici a plousse.


lundi 6 juin 2005 à 13:36:46 | Re : [XML][DOM]getattribute

siropipo

le fichier xml est exactement celui la :

<interpreteur>
 <tag id="01" name="Cmd1">
   <lenght>taille1</lenght>
   <data>value</data>
 </tag>
 <tag id="02" name="Cmd2">
   <lenght>taille1</lenght>
   <data>value</data>
 </tag>
 <tag id="10" name="Cmd3">
   <lenght>taille1</lenght>
   <data>value</data>
 </tag>
</interpreteur>

il est correctement construit pourtan nan ?

lundi 6 juin 2005 à 17:36:30 | Re : [XML][DOM]getattribute

JeanPoldeux

Membre Club


@++

  Every problem has a solution. The difficulty is to find it out. 

lundi 6 juin 2005 à 17:44:10 | Re : [XML][DOM]getattribute

JeanPoldeux

Membre Club


@++

  Every problem has a solution. The difficulty is to find it out. 

lundi 6 juin 2005 à 17:44:32 | Re : [XML][DOM]getattribute

JeanPoldeux

Membre Club

Le xml semble correct. N'as tu pas oublié l'en-tête DOM :
<?xml version="1.0" encoding="ISO-8859-1"?>

Qu'est-ce qui renvoie null ?:
  - DOMParser parser = new DOMParser( );  et donc exception à parser.parse(fileName);
ou
  - parser.parse(fileName);

Essaie de mettre dans ton catch(Exception e)
  e.printStackTrace();
çà peut aider.

Place des affichages consoles avant et après chaque instruction pour voir où tu obtiens null

@++

  Every problem has a solution. The difficulty is to find it out. 

lundi 6 juin 2005 à 19:16:17 | Re : [XML][DOM]getattribute

siropipo

alors :

ceci renvoie l'erreur nullpointer :
    String idName = elemId.getNodeName();

et ceci renvoie [#document: null] :
Document doc = lectureFichier(fich);
   System.out.println(doc);

et enfin ceci renvoi la valeur null :
Element elemId = doc.getElementById(ID);
    System.out.println(elemId);

@plousse


1 2 3

Cette discussion est classé dans : public, xml, element, import, map


Répondre à ce message

Sujets en rapport avec ce message

recuperer contenu de balise xml avec sax [ par lolofx ] salut, voila, je voudrais recuprer le contenu d'une balise xml choisi voila la sourcepour info nom correspond au nom de la balisefichier au nom du fic JDOM : ajout de la balise pour xsl pour lire un xml stylé ? [ par SilverGrom2 ] Bonsoir, voila pour pouvoir être "stylé" un fichier xml doit contenir la balise : j'utilise JDOM pour créer mon fichier xml mais je n'arriv manipuler un document xml avec jtree [ par noussala ] bonjour a tous,voila j'aimerai pouvoire afficher les feuille d'un arbre jtree ,quand on selectionne un noeud afficher ses feuille, j'ai ce code qui me Pleased Help: Parser du XML [ par Rom1S ] Bonjour,Je cherche à parser un fichier XML de ce type : http://www.w3.org/2001/XMLSchema-instance" xsi:noNa filtrer un fichier xml [ par 1980nourah ] bonjour ts le monde,j'ai un fichier xml dont je doit le parser et lire l'element ID_MODULE  pour afficher apres l'attribut time dans l'element racine probleme chat graphique [ par boboz2 ] Bonjour, J'ai repris un code source de GillesWebmaster trouver sur ce site pour le modifier et ainsi realiser mon projet scolaire. Mais j'ai quelques probleme de log avec l api log4j [ par hamster007 ] bonjour à tous; voila mon logger marche bien lorsque que je l'utilise d'un main de test, mais des que je l insere dans mon appli (sous eclipse) ben insere tableaux dans un rectangle drag&drop [ par hkahil ] Bonjour j'ai recupere ce code sur le siteje souhaiterais y inserer un tableauxpouvez vous m'aider svp[CODE]import java.awt.AlphaComposite;import java. Problème dans la programmation de l'impression d'une jFrame [ par beberto56 ] Bonjour,je suis dans la dernière phase de la programmation de mon formulaire et je suis en plein dans la programmation de ma classe d'impression hors salut j'ai un petit problem ki peu m'aider [ par abdna ] je ss débutant avec netbeans 6.1 et hibernate +mysql et j'ai le probleme suivant :État HTTP 500 - type Rapport d'étatMessageDescriptionLe serveur a re


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,796 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.