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

Langage PHP Discussion :

Écriture JSON array


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 184
    Points : 87
    Points
    87
    Par défaut Écriture JSON array
    je suis bloqué sur la contruction d'un flux JSON. Cela est fait par rapport à un fichier XML reçu par l'appel d'un Web Service Soap.
    Celui-ci ressemble à :

    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
    15
    16
    <?xml version="1.0" encoding="utf-8" ?> 
    <root>
    <documentListCount>36</documentListCount >
    <documentIndexes>
    <index name= "document title " value="1648801151455354.PDF" type="text"/> 
    <index name= "document creator " value="Administrateurs" type="text"/> 
    <index name= "document creation time " value="2022-04-01 10:19:11" type="tstamp"/> 
    <index name= "document page count " value="1" type="text"/> 
    <index name= "refdoc_tech" value="1105860" type="text"/> 
    <index name= "c_prod" value="" type="text"/> 
    <index name= "no_pol" value="" type="text"/> 
    <index name= "no_pers" value="" type="text"/> 
    <index name= "c_cli" value="01080198502" type="text"/> 
    <index name= "comment" value="Infos sur entity" type="text"/> 
    <index name= "d_trt" value="2022-04-01 11:19:10" type="tstamp"/> 
    </documentIndexes>

    et je dois ressortir un fichier du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    {
                "documentTitle": "1648801151455354.PDF",
                "documentCreator": "Administrateurs",
                "documentCreation time": "2022-04-01 10:19:11",
                "documentPage count ": "1",
                "refdocTech": "1105860",
                ......
            },
    j'utilise la librairie DomDocument. Je ne vois pas d'erreur et pourtant dans ma variable ListDocument (qui est un array) je n'ai rien.
    Mon code est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $outputFile = '\\\\S03\\retrieved\\'.$filedest.'.xml';	
     
     
    if(!empty($outputFile)){
    	$DOM = new DOMDocument();
    	//
    	$DOM->load($outputFile) or die ("Impossible de charger le fichier xml.") ;
    	$xpath = new DOMXPath($DOM);
    	$listDocument[] = "DocumentList";
    	foreach($xpath->query('//index=@document title ') as $modele) 
           {    
    		$listDocument[] = $modele->getAttribute('name');
    		$listDocument[] = ';'.$modele->getAttribute('value');
    	}
    Si quelqu'un a une idée hihihih.
    Merci à vous

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    activez l'affichage des erreurs, vous verrez qu'il y en a plusieurs :
    https://www.php.net/manual/fr/errorf...display-errors
    https://www.php.net/manual/fr/errorf...rror-reporting

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 184
    Points : 87
    Points
    87
    Par défaut
    J'ai modifié certaines choses comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($xpath->query('//index[@name="document title "]') as $modele)
    et là ça va beaucoup mieux.

    Merci
    si vous avez toujours en vue certains problèmes je suis toujours preneur de solution

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 184
    Points : 87
    Points
    87
    Par défaut
    Je n'arrive pas a récupérer la variable documentListCount. Pourtant j'ai essayé d'aller le chercher directement avec le:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $xpath->query('//@documentListCount');
    et mon code est comme ça mais j'ai encore certains problèmes.

    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
    foreach($xpath->query('//index[@name="refdoc_tech"]') as $refdoc_tech) 
    {
    //point de  bouclage comme celle ci est une variable unique
    	$listDocument[] = "{ refdocTech".' : '.$refdoc_tech->getAttribute('value').';';
    	foreach($xpath->query('//index[@name="document title "]') as $Doctitle) 
    		$listDocument[] ="documentTitle".' : '.$Doctitle->getAttribute('value').';';
     
    	foreach($xpath->query('//index[@name="document creation time "]') as $CreatDoc) 
    		$listDocument[] = "documentCreator".' : '.$CreatDoc->getAttribute('value').';';
    	foreach($xpath->query('//index[@name="document page count "]') as $PageCount) 
    		$listDocument[] = "documentPage count ".' : '.$PageCount->getAttribute('value').';';
    	foreach($xpath->query('//index[@name="document creation time "]') as $docCreationTime) 
    		$listDocument[] = "documentCreation time".' : '.$docCreationTime->getAttribute('value').';';
    .........
    }
    Je n'arrive pas à avoir les informations dans l'ordre.
    A savoir j'ai d'abord le refdoc_tech et après X fois documentTitle.
    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
    Array
    (
        [0] => DocumentList 
        [1] => { refdocTech : 1105860;
        [2] => documentTitle : 1648801151455354.PDF;
        [3] => documentTitle : 1640098517477295.DOC;
        [4] => documentTitle : 1648801680423355.PDF;
        [5] => documentTitle : 1647245982874382.DOC;
        [6] => documentTitle : 3200008564_ARC_PD_MRH_X14_CAIXA_31903620220331_UPR0088.PDF;
        [7] => documentTitle : 1647246214246353.DOC;
        [8] => documentTitle : 1646996707756378.DOC;
        [9] => documentTitle : 1647251253960352.DOC;
        [10] => documentTitle : 3200008605_ARC_PD_MRH_X14_CAIXA_31908420220622_UPR0088.PDF;
        [11] => documentTitle : 3200008605_CPA_PD_MRH_003_CAIXA_31908420220622_UPR0088.PDF;
        [12] => documentTitle : 3200008564_CPA_PD_MRH_003_CAIXA_31903620220331_UPR0088.PDF;
        [13] => documentTitle : 1657545924913379.PDF;
        [14] => documentTitle : 1388_RFI_PO_VIE_X01_20220301_AUTO.PDF;
        [15] => documentTitle : 1636464562328251.PDF;
        [16] => documentTitle : 1640861532172472.DOC;
        [17] => documentTitle : 1640861527444464.DOC;
        [18] => documentTitle : 1388_RFI_PO_VIE_X01_20220405_AUTO.PDF;
        [19] => documentTitle : 1634549028915299.PDF;
        [20] => documentTitle : 1625041177404294.DOC;
        [21] => documentTitle : 3200008564_REL_PD_MRH_007_20220331_OP400FR.PDF;
        [22] => documentTitle : 1647955620112356.PDF;
        [23] => documentTitle : 3200008041_ARC_PD_MRH_X14_CAIXA_30934820201208_OP400FR.PDF;
        [24] => documentTitle : 3200008042_ARC_PD_MRH_X14_CAIXA_30934820201208_OP400FR.PDF;
        [25] => documentTitle : 3200008041_ECH_PD_MRH_002_00120211208_OP400FR.PDF;
        [26] => documentTitle : 3200008043_ARC_PD_MRH_X14_CAIXA_30934820201208_OP400FR.PDF;
        [27] => documentTitle : 16317231601201112.DOC;
        [28] => documentTitle : 3200008042_ECH_PD_MRH_002_00120211208_OP400FR.PDF;
        [29] => documentTitle : 12007297_AVT_PO_VIE_X03_210186495_UPR0045.PDF;
        [30] => documentTitle : 3200008043_ECH_PD_MRH_002_00120211208_OP400FR.PDF;
        [31] => documentTitle : 1651819572201402.PDF;
        [32] => documentTitle : 1388_FATCAEAI_PO_EPA_X02_20211125_AUTO.PDF;
        [33] => documentTitle : 1644943841036343.DOC;
        [34] => documentTitle : 1388_FATCAEAI_PO_EPA_X02_20211125_AUTO.PDF;
        [35] => documentTitle : 1645549590948379.DOC;
        [36] => documentTitle : 1645025800777346.PDF;
        [37] => documentTitle : 1645025817413379.PDF;
        [38] => documentTitle : 1388_RFI_PO_VIE_X01_20220228_AUTO.PDF;
    Si quelqu'un à une solution je suis preneur hihihihi
    Merci

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 222
    Points
    8 222
    Billets dans le blog
    17
    Par défaut
    Si le problème est toujours d'actualité, donne un exemple fonctionnel illustrant le problème
    et donne le résultat souhaité
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

Discussions similaires

  1. [3.x] Doctrine ajoute des slashes sur une donnée en json array
    Par jfsenechal dans le forum Doctrine2
    Réponses: 1
    Dernier message: 15/12/2016, 15h58
  2. [JSON] Problème de Cast Array en String
    Par helter_skelter dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 21/10/2009, 12h02
  3. [Dojo] Transformer un Array Javascript en JSON
    Par Tavarez59 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 15/10/2009, 23h31
  4. ecriture d'un array dans un fichier txt
    Par julien25 dans le forum MATLAB
    Réponses: 4
    Dernier message: 07/04/2009, 22h19

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