marisal | 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 :
- public static boolean SignOne(String nom, String cert, String pKey, String inFile) throws Exception {
- Tools t = new Tools();
-
- System.out.println("Nom de l'enseignant: " + nom);
-
- Document doc = t.getInputDocument(inFile);
- Element root = doc.getDocumentElement();
-
- Element nscontext = XMLUtils.createDSctx(doc, "ds", Constants.SignatureSpecNS);
- NodeList signatureElems = XPathAPI.selectNodeList(doc, "//ds:Signature", nscontext);
- for (int i = 0; i < signatureElems.getLength(); i++) {
- Element sigElement = (Element) signatureElems.item(i);
- System.out.println("Signature trouvée pour M. "+sigElement.getAttribute("Id" ));
- String id = sigElement.getAttribute("Id" ) ;
- if(id.equals(nom)){
- //COMMENTAIRE: S'il y a une signature à ce nom, on sort de la fonction...
- System.out.println("Document déja signé par M."+nom);
- return true;
- }
- }
-
- /*COMMENTAIRE: Construction de mon expression XPath me permettant de séléctionner tous les enseignements d'une personne
- * */
- String xp = "not(ancestor-or-self::ds:Signature)" + "\n" + " and (" + "\n"
- //$$$
- + " (ancestor-or-self::node() = //default:enseignement[@nom='Security']) " + "\n"
- + " or (ancestor-or-self::node() = //default:enseignement[@nom='Anglais']) " + "\n"
- //$$$
- + " )";
- /*TODO:
- * Rendre cela dynamique, je cronstruis mon expression xpath en fonction du nom passé en paramètre.
- * En gros vous devez remplacer les lignes entre "//$$$"...
- * Tester au passage que si l'enseignant n'a pas d'enseignements, on sort de la fonction "SignOne"
- * plutôt que de créer une signature vide...
|
voilà ce que j'ai changé
Code :
- public static boolean SignOne(String nom, String cert, String pKey, String inFile) throws Exception {
- Tools t = new Tools();
-
- System.out.println("Nom de l'enseignant: " + nom);
-
- Document doc = t.getInputDocument(inFile);
- Element root = doc.getDocumentElement();
-
-
-
- Element nscontext = XMLUtils.createDSctx(doc, "ds", Constants.SignatureSpecNS);
- NodeList signatureElems = XPathAPI.selectNodeList(doc, "//ds:Signature", nscontext);
- for (int i = 0; i < signatureElems.getLength(); i++) {
- Element sigElement = (Element) signatureElems.item(i);
- System.out.println("Signature trouvée pour M. "+sigElement.getAttribute("Id" ));
- String id = sigElement.getAttribute("Id" ) ;
- if(id.equals(nom)){
- System.out.println("Document déja signé par M."+nom);
- return true;
- }
- }
-
- String xp = "not(ancestor-or-self::ds:Signature)" + "\n"
- + " and (" + "\n" + " )";
- NodeList elements = doc.getElementsByTagName("enseignant" );
- Element elementEn;
- for (int i = 0; i < elements.getLength(); i++) {
- elementEn = (Element)elements.item(i);
- //System.out.println("Enseignant:" +elementEn.getAttribute("nom" ));
- if((elementEn.getAttribute("nom" )).equals("Banks" )){
- Node node = (Node)elementEn.getParentNode();
- System.out.println("Enseignement:" +node.getAttributes());
- }
- else {
-
- System.out.println("Veuillez sortir de l'application" );
- }
- }
|
il ya des erreurs dans le code mais je ne vois pas lesquelles si qqn peut m'aider svp
merci d'avance
|