begin process at 2012 02 13 13:38:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Au secours

 > 

[XML][DOM]getattribute


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[XML][DOM]getattribute

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ée 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 parcourir fichier xml externe [ par wissam12 ] Bonjour,j'ai un problème et j'ai besoin de l'aide.je veux parcourir un fichier xml externe(url:exemple "http://www.menara.ma/rss/actualites.xml") avec Probleme de collision map 2D [ par dadouvic ] Bonjour à tous et à toute ! Voili voilou, sa fais pas tellement de temps que je fais du Java, et je me suis dis que j'allais essayer de faire quelque Map [ par amasou ] bonjour je souhaite votre aide je suis étudiant j'ai un problème [code=java] import java.io.File; import java.io.IOException; import java.util.Map; xml avec servlet [ par kouchiismail ] mon probleme est que j'ai une class java qui génere des fichiers xml a partir d'une base de données , je vaudrai faire la meme chose mais avec une se Socket en java [ par akramuniversite ] bonjour, j'ai réalisé un client en java qui permet d'envoyer des données a un serveur en C++ mais je ne reçois rien du coté de serveur voici le code:[ mettre des infobulles sur des marqueurs [ par emna77 ] salut tout le monde, j'ai une application de géolocalisation sur android ou je place des marqueurs sur une carte mais je veux que des infobulles apara


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,867 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales