IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Création Méthode en Javascript


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 573
    Par défaut Création Méthode en Javascript
    Bonjour,

    Pour le moment, j'ai une petite fonction (créée juste pour l'exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function ParseXml(TheNode,TheData) 
    {
    	TheData = TheData.split("<"+TheNode+">")
    	TheData = TheData[1].split("</"+TheNode+">")
    	TheData = TheData[0]
    	return TheData
    }
    Que j'appelle de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	//- MyNom
    	MyNom = TheInputXmlData
    	MyNom = ParseXml("etatcivil",MyNom) 
    	MyNom = ParseXml("nom",MyNom)
    Est t'il possible d'utiliser la fonction (avec surement des modifs ;-)) un peu comme on utilise les méthodes replace, split ... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyNom = TheInputXmlData.ParseXml("etatcivil").ParseXml("nom")
    Merci pour votre aide.

    A+
    Thais

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    TheInputXmlData="<xml><etatcivil><prenom>paul</prenom><nom>Dupont</nom><etatcivil><adresse></adresse></xml>";
    if (window.DOMParser)
    {
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(TheInputXmlData, "text/xml");
    }
    else // Internet Explorer
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.loadXML(TheInputXmlData);
    }
     
    //methode DOM avec fuent API comme tu le demande
    //------------------------------l'état civil--v------le nom dans l'état civil--v---texte--v
    console.log(xmlDoc.getElementsByTagName("etatcivil")[0].getElementsByTagName("nom")[0].textContent);
     
     
    // methode XPATH plus efficace
    if (xmlDoc.selectNodes) //Internet Explorer
    {
        console.log(xmlDoc.selectNodes("//etatcivil/nom/text()"));
    }
    else
    {
        console.log(xmlDoc.evaluate("//etatcivil/nom/text()", xmlDoc, null, XPathResult.STRING_TYPE,null).stringValue);
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 573
    Par défaut
    Bonjour,

    Merci pour ton aide.
    J'avais effectivement vu des choses de ce style sur le web.
    Le soucis est que je passe par iMacros (sous Firefox) pour lancer mes actions Javascript, donc il doit falloir des choses basiques ....

    Avec ton exemple, j'ai le pb suivant : ReferenceError: DOMParser is not defined, line 7 (Error code: -991)

    C'est pourquoi je pensais "réécrire" le parse XML en plus simple .....

    Une autre idée

    Thais

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    avec des prototype ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 573
    Par défaut
    possible .... mais comment

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    comme mentionné par SpaceFrog, en utilisant le prototypage et en occurrence de la String, ce qui te permettra de « chainer ».

    par exemple dans ton cas tu pourrais écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String.prototype.myParseXML = function (node) {
        var tab = this.split('<' + node + '>')
        tab = tab[1].split('</' + node + '>')
        tab = tab[0]
        return tab;
    }
    puis faire un appel comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    txt = '<xml><etatcivil><prenom>paul</prenom><nom>Dupont</nom><etatcivil><adresse></adresse></xml>';
    txt = txt.parseXML('etatcivil').parseXML('nom')
    console.log(txt); // >> Dupont
    d'un autre coté je ne vois pas pourquoi tu n'imbriques pas tes appels du style txt = ParseXml("nom", ParseXml("etatcivil", MyNom)).

    PS : il va falloir penser à gérer les erreurs possibles dans ta fonction

  7. #7
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Citation Envoyé par thais781
    ...
    IMacro ne définit pas les objet comme javascript dans le navigateur.

    l'objet document du navigateur est dans iMacro window.content.document.
    il me semble que l'objet window de javascript est window.content dans iMacro où un truc du genre.

    il te suffit d'adapter ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var parser = parser = new window.content.DOMParser();
    var xmlDoc = parser.parseFromString(TheInputXmlData, "text/xml");
    C'est un des problème de iMacros il utiliser les noms des objets javascript standard pour ses objets internent qui n'on pas la même API. du coup il faut jongler pour arriver à retrouver ses petits.

    A+JYT

Discussions similaires

  1. Problème création méthode
    Par absot dans le forum Général Java
    Réponses: 2
    Dernier message: 12/03/2010, 11h48
  2. création d'éléments JavaScript
    Par vibe972 dans le forum jQuery
    Réponses: 2
    Dernier message: 21/05/2009, 19h00
  3. méthode substring javascript
    Par babalastar dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/02/2008, 11h53
  4. "Dé-surcharger" une méthode native javascript
    Par Takezo1584 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/08/2007, 12h37
  5. prob création liste avec javascript
    Par herve70 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/11/2006, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo