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 333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 333
    Points : 15 677
    Points
    15 677
    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 200
    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 200
    Points : 8 425
    Points
    8 425
    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é

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