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 :

Extraction de variable XML avec doc.getElementsByTagName


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Extraction de variable XML avec doc.getElementsByTagName
    Bonjour,

    Le script s'exécute dans une macro WSR.

    je cherche à extraire les données contenues dans les balises d'un fichier xml dont je connait les réf :

    database.xml :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="iso-8859-1"?>
    <root>
    <tagxml>test</tagxml>			
    </root>

    Script.WSR :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <speechMacros>
    <command>
    <listenFor>test</listenFor>
    <script language="JScript">
    <![CDATA[
         var xml_doc = new ActiveXObject("Microsoft.XMLDOM"); 
         xml_doc.async = false;
         xml_doc.load("%USERPROFILE%\Documents\database.xml");
         var userjs = xml_doc.getElementsByTagName("tagxml").item(0).text;
         Application.Speak userjs;
    ]]>
    </script>
    </command>
    </speechMacros>

    L'erreur vient a priori de la ligne 4 du JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var userjs = xml_doc.getElementsByTagName("tagxml").item(0).text;
    je pense que ca coince au niveau de item(0).text, sans comprendre pourquoi.

    quelqu'un peut m'éclairer de ses lumières?

    Merci

  2. #2
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var userjs = xml_doc.getElementsByTagName("tagxml")[0].innerHTML;

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Idem : Erreur Ligne 4 : objet requis

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    xml doc n'est donc pas correct

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    en vbscript ca donne sur le meme xml(avec un coup de main du forum) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    set WshShell = WScript.CreateObject("WScript.Shell")
    stFicXml = WshShell.ExpandEnvironmentStrings("%USERPROFILE%\Documents\database.xml") 
    set xmldoc = CreateObject("Microsoft.XMLDOM")
    xmldoc.async = "false"
     
    if xmldoc.load(stFicXml) Then
     
    Set uservsb = xmldoc.SelectSingleNode("//root/userxml")
    msgbox uservsb.Text
    Else
    MsgBox "Erreur ouverture fichier xml"
     
    End If
    Je pensse qu'il manque l'équivalent de ("//root/userxml") pour getElementsByTagName.

    Y a t'il un moyen de contrôler que xml_doc.load a fonctionné ?

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,

    Peut-tu montrer le code xml?

    Sinon, tu ne dois pas échapper le caractère "\"?

    A+.

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Code XLM :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <root>
    <tagxml>test</tagxml>			
    </root>

    En fait je pense qu'il manque a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      var userjs = xml_doc.getElementsByTagName("tagxml").item(0).text;
    le chemin du noeu XML

    en comparaison en vbs on parcours les noeu par //root/tagxml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Set uservsb = xmldoc.SelectSingleNode("//root/tagxml")
    je patauge

Discussions similaires

  1. Variables dynamiques avec this["truc"], xml
    Par TrX dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 12/07/2009, 10h16
  2. xml ne se formatte pas avec doc xslt
    Par sauceaupistou dans le forum ASP.NET
    Réponses: 1
    Dernier message: 12/09/2008, 16h33
  3. VB2005 - Probleme LIEN MenuStrip avec DOC XML
    Par tibblou dans le forum Windows Forms
    Réponses: 10
    Dernier message: 26/04/2008, 12h09
  4. [XSLT] [PHP] extraction des variable de xsl avec php
    Par anis_el_madani dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/04/2007, 23h20
  5. [DOM4J] Mise à jour des docs xml avec dom4j
    Par kodo dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 06/04/2006, 21h48

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