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

ASP Discussion :

Parsing Xml ASP


Sujet :

ASP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Parsing Xml ASP
    Bonjour à tous
    je dois parser un fichier XML de commandes hébergé à distance.
    je parviens facilement à parser les nodes parents et enfants mais pas les enfants des enfants.
    voici la structure du xml:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    <?xml version="1.0" encoding="ISO-8859-1"?>
        <statistics ip="90.32.88.139" timeGenerated="2011-11-15 09:53:39">
        <commandes>
    		<commande>
    			<marketplace><![CDATA[RDC]]></marketplace>
    			<status><![CDATA[En attente]]></status>
    			<com_id><![CDATA[01]]></com_id>
    			<com_payement_date><![CDATA[15/11/2011]]></com_payement_date>
    			<com_purchase_date><![CDATA[15/11/2011]]></com_purchase_date>
    			<com_fact_societe><![CDATA[]]></com_fact_societe>
    			<com_fact_nom><![CDATA[Durand]]></com_fact_nom>
    			<com_fact_prenom><![CDATA[Gael]]></com_fact_prenom>
    			<com_fact_email><![CDATA[mail@mail.fr]]></com_fact_email>
    			<com_fact_adresse><![CDATA[Rue pas loin d'ici]]></com_fact_adresse>
    			<com_fact_cp><![CDATA[75003]]></com_fact_cp>
    			<com_fact_ville><![CDATA[Paris]]></com_fact_ville>
    			<com_fact_pays><![CDATA[France]]></com_fact_pays>
    			<com_fact_telephone_home><![CDATA[0102030405]]></com_fact_telephone_home>
    			<com_fact_telephone_office><![CDATA[]]></com_fact_telephone_office>
    			<liv_fact_societe><![CDATA[]]></liv_fact_societe>
    			<liv_fact_nom><![CDATA[Durand]]></liv_fact_nom>
    			<liv_fact_prenom><![CDATA[Gael]]></liv_fact_prenom>
    			<liv_fact_email><![CDATA[mail@mail.fr]]></liv_fact_email>
    			<liv_fact_adresse><![CDATA[Rue pas loin d'ici]]></liv_fact_adresse>
    			<liv_fact_adresse_2><![CDATA[]]></liv_fact_adresse_2>
    			<liv_fact_adresse_complement><![CDATA[]]></liv_fact_adresse_complement>
    			<liv_fact_cp><![CDATA[75003]]></liv_fact_cp>
    			<liv_fact_ville><![CDATA[Paris]]></liv_fact_ville>
    			<liv_fact_pays><![CDATA[France]]></liv_fact_pays>
    			<liv_fact_telephone_home><![CDATA[]]></liv_fact_telephone_home>
    			<liv_fact_telephone_office><![CDATA[]]></liv_fact_telephone_office>
    			<com_montant_commande><![CDATA[361.99]]></com_montant_commande>
    			<com_montant_tax><![CDATA[00]]></com_montant_tax>
    			<com_nb_article><![CDATA[2]]></com_nb_article>
    			<com_shipping><![CDATA[]]></com_shipping>
    			<com_shipping_description><![CDATA[Calberson]]></com_shipping_description>
    			<com_commentaires><![CDATA[]]></com_commentaires>
    			<com_commission><![CDATA[]]></com_commission>
    			<com_tracking_colis><![CDATA[]]></com_tracking_colis>
    			<com_ip><![CDATA[]]></com_ip>
    			<com_checkout_payment><![CDATA[]]></com_checkout_payment>
    			<com_type_payment><![CDATA[Carte]]></com_type_payment>
    			<com_type_livraison><![CDATA[]]></com_type_livraison>
    			<panier>
    				<nb_orders>2</nb_orders>
    				<produits>
    				<produit>
    				<id><![CDATA[1504]]></id>
    				<titre><![CDATA[Compresseur 100 l 3 cv]]></titre>
    				<category><![CDATA[]]></category>
    				<url_produit><![CDATA[Compresseur]]></url_produit>
    				<url_image><![CDATA[/images/3cv-01504a.jpg]]></url_image>
    				<sku><![CDATA[]]></sku>
    				<qt><![CDATA[1]]></qt>
    				<marque><![CDATA[]]></marque>
    				<ean><![CDATA[]]></ean>
    				<prix><![CDATA[359,99 ]]></prix>
    				</produit>
     
    				<produit>
    				<id><![CDATA[2458]]></id>
    				<titre><![CDATA[Bâche de protection multi usages]]></titre>
    				<category><![CDATA[]]></category>
    				<url_produit><![CDATA[Bâches]]></url_produit>
    				<url_image><![CDATA[http://images/2458.jpg]]></url_image>
    				<sku><![CDATA[]]></sku>
    				<qt><![CDATA[1]]></qt>
    				<marque><![CDATA[]]></marque>
    				<ean><![CDATA[]]></ean>
    				<prix><![CDATA[2,00]]></prix>
    				</produit>
    				</produits>
    			</panier>
    		</commande>
     
    		<commande>
    			<marketplace><![CDATA[RDC]]></marketplace>
    			<status><![CDATA[En attente]]></status>
    			<com_id><![CDATA[01]]></com_id>
    			<com_mrid><![CDATA[00]]></com_mrid>
    			<com_refid><![CDATA[02]]></com_refid>
    			<com_payement_date><![CDATA[15/11/2011]]></com_payement_date>
    			<com_purchase_date><![CDATA[15/11/2011]]></com_purchase_date>
    			<com_fact_societe><![CDATA[]]></com_fact_societe>
    			<com_fact_nom><![CDATA[Dupont]]></com_fact_nom>
    			<com_fact_prenom><![CDATA[Eric]]></com_fact_prenom>
    			<com_fact_email><![CDATA[mail@mail.fr]]></com_fact_email>
    			<com_fact_adresse><![CDATA[Rue par la bas]]></com_fact_adresse>
    			<com_fact_adresse_2><![CDATA[BP 753]]></com_fact_adresse_2>
    			<com_fact_adresse_complement><![CDATA[]]></com_fact_adresse_complement>
    			<com_fact_cp><![CDATA[75003]]></com_fact_cp>
    			<com_fact_ville><![CDATA[Paris cedex]]></com_fact_ville>
    			<com_fact_pays><![CDATA[France]]></com_fact_pays>
    			<com_fact_telephone_home><![CDATA[01090807]]></com_fact_telephone_home>
    			<com_fact_telephone_office><![CDATA[]]></com_fact_telephone_office>
    			<liv_fact_societe><![CDATA[]]></liv_fact_societe>
    			<liv_fact_nom><![CDATA[Dupont]]></liv_fact_nom>
    			<liv_fact_prenom><![CDATA[Eric]]></liv_fact_prenom>
    			<liv_fact_email><![CDATA[mail@mail.fr]]></liv_fact_email>
    			<liv_fact_adresse><![CDATA[Rue par la bas]]></liv_fact_adresse>
    			<liv_fact_adresse_2><![CDATA[BP 753]]></liv_fact_adresse_2>
    			<liv_fact_adresse_complement><![CDATA[]]></liv_fact_adresse_complement>
    			<liv_fact_cp><![CDATA[75003]]></liv_fact_cp>
    			<liv_fact_ville><![CDATA[Paris cedex]]></liv_fact_ville>
    			<liv_fact_pays><![CDATA[France]]></liv_fact_pays>
    			<liv_fact_telephone_home><![CDATA[]]></liv_fact_telephone_home>
    			<liv_fact_telephone_office><![CDATA[]]></liv_fact_telephone_office>
    			<com_montant_commande><![CDATA[78.99]]></com_montant_commande>
    			<com_montant_tax><![CDATA[00]]></com_montant_tax>
    			<com_nb_article><![CDATA[2]]></com_nb_article>
    			<com_shipping><![CDATA[]]></com_shipping>
    			<com_shipping_description><![CDATA[Colissimo]]></com_shipping_description>
    			<com_commentaires><![CDATA[]]></com_commentaires>
    			<com_commission><![CDATA[]]></com_commission>
    			<com_tracking_colis><![CDATA[]]></com_tracking_colis>
    			<com_ip><![CDATA[]]></com_ip>
    			<com_checkout_payment><![CDATA[]]></com_checkout_payment>
    			<com_type_payment><![CDATA[Carte]]></com_type_payment>
    			<com_type_livraison><![CDATA[]]></com_type_livraison>
    			<panier>
    				<nb_orders>2</nb_orders>
    				<produits>
    				<produit>
    				<id><![CDATA[1555]]></id>
    				<titre><![CDATA[Aspirateur à cendre inox]]></titre>
    				<category><![CDATA[]]></category>
    				<url_produit><![CDATA[Aspirateur ]]></url_produit>
    				<url_image><![CDATA[http://images/aspirateur-cendre-inox-1555.jpg]]></url_image>
    				<sku><![CDATA[]]></sku>
    				<qt><![CDATA[1]]></qt>
    				<marque><![CDATA[]]></marque>
    				<ean><![CDATA[]]></ean>
    				<prix><![CDATA[69,99]]></prix>
    				</produit>
     
    				<produit>
    				<id><![CDATA[4117]]></id>
    				<titre><![CDATA[Nappe anti tâche ronde motif Oloron bleu]]></titre>
    				<category><![CDATA[]]></category>
    				<url_produit><![CDATA[Nappe]]></url_produit>
    				<url_image><![CDATA[http://images/blank-1.gif]]></url_image>
    				<sku><![CDATA[]]></sku>
    				<qt><![CDATA[1]]></qt>
    				<marque><![CDATA[]]></marque>
    				<ean><![CDATA[]]></ean>
    				<prix><![CDATA[9,00]]></prix>
    				</produit>
    				</produits>
    			</panier>
    		</commande>
        </commandes>
        </statistics>
    Voici le code que j'ai fait
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    objXML.Load CStr(fluxrss)
    If objXML.parseError.errorCode <> 0 Then
    Dim xPE
        Set xPE = objXML.parseError ' obtient l'objet ParseError
        With xPE
            strErrText = "Votre document XML n'a pu être chargé en raison "
            strErrText = strErrText & "de l'erreur suivante : <br>" & vbCrLf
            strErrText = strErrText & "Error numéro : " & .errorCode
            strErrText = strErrText & " : " & xPE.reason & vbCrLf
            strErrText = strErrText & "<br>Ligne " & .Line & vbCrLf
            strErrText = strErrText & "<br>Position ligne : " & .filepos & vbCrLf
            strErrText = strErrText & "<br>Texte source : " & .srcText & vbCrLf
            strErrText = strErrText & "<br>URL : " & .url
            Response.Write strErrText
        End With
     
    	else
    	Set Cmds = objXML.getElementsByTagName("commande")
    	NbCmds=Cmds.length
    	Set refer = objXML.getElementsByTagName("produit")
    	NbArticle=refer.length
     
     
     
     For i = 0 to (NbCmds-1)
    	Nom=Cmds.item(i).childNodes.item(8).text
    	Response.write Nom&"<br>"
     'For j = 0 to (NbArticle-1)
    for each x in refer
          Ref			= refer.item(x).childNodes.item(0).childNodes.item(0).text
    	  'Designation	= refer.item(j).childNodes.item(0).childNodes.item(2).text
    	  'Qte			= refer.item(j).childNodes.item(0).childNodes.item(6).text
    	  'Prix			= refer.item(i).childNodes.item(0).childNodes.item(9).text	
     
    	response.write Ref&" "&Designation&" "&Qte&" "&Prix&"&euro; <br>"
     Next
     
    Next	
     
    End If
    J'arrive bien à afficher les deux commandes mais le contenu du panier s'ajoute à chaque client
    Je ne parvien pas à bien parser le tag <produit> pour chaque commande.
    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    La methode getElementsByTagName retourne TOUS les noeuds enfants de l'objet considéré. Le fonctionnement observé est donc le fonctionnement normal.

    Pour parser les produits commande par commande, il ne faut pas parser sur objXML, mais sur chacun des noeuds Cmds.


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

Discussions similaires

  1. Parsing XML dans ASP.NET
    Par duxitto dans le forum ASP.NET
    Réponses: 3
    Dernier message: 30/12/2009, 23h07
  2. xml & asp suppression d'un noeud
    Par totoche dans le forum ASP
    Réponses: 1
    Dernier message: 28/10/2005, 11h41
  3. parsing xml en francais
    Par ouioui2000 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/10/2005, 17h03
  4. [JSP] Parsing XML avec JDOM
    Par benben13 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 26/08/2005, 17h19
  5. [FLASH MX 2004 pro] DATASET, XML, ASP
    Par kenshi dans le forum Flash
    Réponses: 4
    Dernier message: 27/01/2004, 10h38

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