begin process at 2010 03 20 14:46:54
  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 avec XML file reading [ par Nkunzis ] Salut j ai un probleme avec xml file....j arrive pas a lire tout le contenue du fichierje suis debutant avec xml files.je sais pas exactement la ou se Exception ClassCast avec WritableCell dans JExcel [ par coltman ] Bonjour, J'ai un petit souci avec JExcel. J'ai une java.lang.ClassCastException: jxl.biff.EmptyCell cannot be cast to jxl.write.Label à la ligne où Se positionner dans un xml pour ajout/suppression d'un élément [ par bidule7 ] Bonjour, voici mon fichier xml :Code :<pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 640px; 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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 : 0,811 sec (3)

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