Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
924 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  JAVA XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

JAVA XML

n°1686343
marisal
Posté le 14-02-2008 à 14:33:04  profilanswer
 

bonjour,
je dois construire une expression ( un bout de code) xpath en fonction du nom passé en paramètre.
voici le code :  
le travail demandé est ce qui est marqué en bas en commentaire.

Code :
  1. public static boolean SignOne(String nom, String cert, String pKey, String inFile) throws Exception {   
  2.     Tools t = new Tools();
  3.   
  4.     System.out.println("Nom de l'enseignant: " + nom);
  5.   
  6.     Document doc = t.getInputDocument(inFile);
  7.     Element root = doc.getDocumentElement();
  8.  
  9.     Element nscontext = XMLUtils.createDSctx(doc, "ds", Constants.SignatureSpecNS);
  10.     NodeList signatureElems = XPathAPI.selectNodeList(doc, "//ds:Signature", nscontext);
  11.     for (int i = 0; i < signatureElems.getLength(); i++) {
  12.      Element sigElement = (Element) signatureElems.item(i);
  13.      System.out.println("Signature trouvée pour M. "+sigElement.getAttribute("Id" ));
  14.      String id = sigElement.getAttribute("Id" ) ;
  15.      if(id.equals(nom)){
  16. //COMMENTAIRE: S'il y a une signature à ce nom, on sort de la fonction...
  17.       System.out.println("Document déja signé par M."+nom);
  18.       return true;
  19.      }
  20.     }
  21.   
  22. /*COMMENTAIRE: Construction de mon expression XPath me permettant de séléctionner tous les enseignements d'une personne
  23. * */
  24.       String xp = "not(ancestor-or-self::ds:Signature)" + "\n" + " and (" + "\n"
  25.      //$$$
  26. + " (ancestor-or-self::node() = //default:enseignement[@nom='Security']) " + "\n"
  27. + " or (ancestor-or-self::node() = //default:enseignement[@nom='Anglais']) " + "\n"
  28. //$$$
  29.        + " )";
  30. /*TODO:
  31. * Rendre cela dynamique, je cronstruis mon expression xpath en fonction du nom passé en paramètre.
  32. * En gros vous devez remplacer les lignes entre "//$$$"...
  33. * Tester au passage que si l'enseignant n'a pas d'enseignements, on sort de la fonction "SignOne"
  34. * plutôt que de créer une signature vide...


 
voilà ce que j'ai changé
 

Code :
  1. public static boolean SignOne(String nom, String cert, String pKey, String inFile) throws Exception {   
  2.     Tools t = new Tools();
  3.   
  4.     System.out.println("Nom de l'enseignant: " + nom);
  5.   
  6.     Document doc = t.getInputDocument(inFile);
  7.     Element root = doc.getDocumentElement();
  8.   
  9.   
  10.  
  11.     Element nscontext = XMLUtils.createDSctx(doc, "ds", Constants.SignatureSpecNS);
  12.     NodeList signatureElems = XPathAPI.selectNodeList(doc, "//ds:Signature", nscontext);
  13.     for (int i = 0; i < signatureElems.getLength(); i++) {
  14.      Element sigElement = (Element) signatureElems.item(i);
  15.      System.out.println("Signature trouvée pour M. "+sigElement.getAttribute("Id" ));
  16.      String id = sigElement.getAttribute("Id" ) ;
  17.      if(id.equals(nom)){
  18.       System.out.println("Document déja signé par M."+nom);
  19.       return true;
  20.      }
  21.     }
  22.   
  23.       String xp = "not(ancestor-or-self::ds:Signature)" + "\n"
  24.        + " and (" + "\n" + " )";
  25.       NodeList elements = doc.getElementsByTagName("enseignant" );
  26.    Element elementEn;
  27.        for (int i = 0; i < elements.getLength(); i++) {
  28.         elementEn = (Element)elements.item(i);
  29.         //System.out.println("Enseignant:" +elementEn.getAttribute("nom" ));
  30.       if((elementEn.getAttribute("nom" )).equals("Banks" )){
  31.        Node node = (Node)elementEn.getParentNode();
  32.        System.out.println("Enseignement:" +node.getAttributes()); 
  33.       }
  34.       else {
  35.      
  36.        System.out.println("Veuillez sortir de l'application" );
  37.       }
  38.        }


 
il ya des erreurs dans le code mais je ne vois pas lesquelles si qqn peut m'aider svp
merci d'avance

mood
Publicité
Posté le 14-02-2008 à 14:33:04  profilanswer
 

n°1686469
frangelus
Posté le 14-02-2008 à 17:37:54  profilanswer
 

tu n'a pas utilisé xpath comme demander dans l'énoncé !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  JAVA XML

 

Sujets relatifs
[Java & XML] Parser SAX : comment ajouter un tag au cours du parsing ?JAVA, XML, Excel je suis perdu
Lire un XML (tag spécifique) avec javaLes espaces de nommage dans les langages (XML, C++,JAVA)
[Java et XML] Traitement d'un fichier XML avec JAVAJava et XML...Exporter un Xml avec DOM
[java] Parser un fichier XMLJava et le XML
Java et XMLParsing de XML en java -DOM-SAX-JAXB?
Plus de sujets relatifs à : JAVA XML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR