Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    problema sintassi cambio nome nodo in import xml

    Gentile team
    avevo uno script che caricava i dati da un import di un file xml
    che aveva i campi così strutturato

    codice:
    <OrgnlMsgId>1422873647674</OrgnlMsgId>




    che io leggo così:

    Codice PHP:
     $Importo_op $value->OrgnlMsgId


    oggi però l'xml è cambiato così

    codice:
    <LMSG:OrgnlMsgId>1427369679146</LMSG:OrgnlMsgId>



    come mi devo comportare in termini di sintassi con i 2 punti presenti dopo la parola LMSG

    perchè se faccio così:

    Codice PHP:
     $Importo_op $value->LMSG:OrgnlMsgId
    giustamente mi da errore...

    attendo vs

    grazie mille
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  2. #2
    Prova una cosa del genere:

    Codice PHP:
    ...
    $ns $xml->getNamespaces(true);
    foreach (...) {
        
    $Importo_op $value->children($ns['LMSG'])->OrgnlMsgId;
        ...


    P.S.
    Altrimenti dai un'occhiata qui:

    http://php.net/manual/en/simplexmlel...hnamespace.php
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Prova una cosa del genere:

    Codice PHP:
    ...
    $ns $xml->getNamespaces(true);
    foreach (...) {
        
    $Importo_op $value->children($ns['LMSG'])->OrgnlMsgId;
        ...


    P.S.
    Altrimenti dai un'occhiata qui:

    http://php.net/manual/en/simplexmlel...hnamespace.php

    purtroppo non va non da nessun errore e nessun segno...

    io ho la necessità di recuperare il valore che si trova in questa riga:

    codice HTML:
    <LMSG:MndtId>BEQGT90000000000162</LMSG:MndtId>

    l'intero pezzo di xml è questo

    codice:
    <CBIBdySDDStsRpt xmlns="urn:CBI:xsd:CBIBdySDDStsRpt.00.01.00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:LMSG="urn:CBI:xsd:CBISDDStsRptLogMsg.00.01.00">
    <PhyMsgInf>...</PhyMsgInf>
    
    
    <CBIEnvelSDDStsRptLogMsg>
    <CBISDDStsRptLogMsg>
    <LMSG:GrpHdr>...</LMSG:GrpHdr>
    
    
    <LMSG:OrgnlGrpInfAndSts>...</LMSG:OrgnlGrpInfAndSts>
    
    
    <LMSG:OrgnlPmtInfAndSts>
    <LMSG:OrgnlPmtInfId>1</LMSG:OrgnlPmtInfId>
    <LMSG:TxInfAndSts>
    <LMSG:OrgnlInstrId>11</LMSG:OrgnlInstrId>
    <LMSG:OrgnlEndToEndId>00011</LMSG:OrgnlEndToEndId>
    <LMSG:TxSts>RJCT</LMSG:TxSts>
    <LMSG:StsRsnInf>...</LMSG:StsRsnInf>
    
    
    <LMSG:OrgnlTxRef>
    <LMSG:Amt>
    <LMSG:InstdAmt Ccy="EUR">416.66</LMSG:InstdAmt>
    
    </LMSG:Amt>
    
    
    <LMSG:ReqdColltnDt>2015-07-10</LMSG:ReqdColltnDt>
    <LMSG:CdtrSchmeId>
    <LMSG:Nm>Sviluppo</LMSG:Nm>
    <LMSG:Id>
    <LMSG:PrvtId>
    <LMSG:Othr>
    <LMSG:Id>IT580010000006983211217</LMSG:Id>
    
    </LMSG:Othr>
    
    
    
    </LMSG:PrvtId>
    
    
    
    </LMSG:Id>
    
    
    
    </LMSG:CdtrSchmeId>
    
    
    <LMSG:PmtMtd>DD</LMSG:PmtMtd>
    <LMSG:MndtRltdInf>
    <LMSG:MndtId>BEQGT90000000000000162</LMSG:MndtId>
    <LMSG:DtOfSgntr>2013-07-29</LMSG:DtOfSgntr>
    
    </LMSG:MndtRltdInf>
    
    
    <LMSG:RmtInf>
    <LMSG:Ustrd>
    ADDEBITO 18 RATA
    </LMSG:Ustrd>
    
    
    
    </LMSG:RmtInf>
    
    
    <LMSG:Dbtr>
    <LMSG:Nm>BOTTONE</LMSG:Nm>
    <LMSG:Id>
    <LMSG:PrvtId>
    <LMSG:Othr>
    <LMSG:Id>BTTGNN74H24F839N</LMSG:Id>
    
    </LMSG:Othr>
    
    
    
    </LMSG:PrvtId>
    
    
    
    </LMSG:Id>
    
    
    
    </LMSG:Dbtr>
    
    
    <LMSG:DbtrAcct>
    <LMSG:Id>
    <LMSG:IBAN>IT71D062300000035576740</LMSG:IBAN>
    
    </LMSG:Id>
    
    
    
    </LMSG:DbtrAcct>
    
    
    <LMSG:DbtrAgt>
    <LMSG:FinInstnId>
    <LMSG:BIC>CRPPIT2P466</LMSG:BIC>
    
    </LMSG:FinInstnId>
    
    
    
    </LMSG:DbtrAgt>
    
    
    <LMSG:Cdtr>
    <LMSG:Nm>Sviluppo</LMSG:Nm>
    
    </LMSG:Cdtr>
    
    
    <LMSG:CdtrAcct>
    <LMSG:Id>
    <LMSG:IBAN></LMSG:IBAN>
    
    </LMSG:Id>
    
    
    
    </LMSG:CdtrAcct>
    
    
    
    </LMSG:OrgnlTxRef>
    
    
    
    </LMSG:TxInfAndSts>
    
    
    
    </LMSG:OrgnlPmtInfAndSts>
    
    
    
    </CBISDDStsRptLogMsg>
    
    
    
    </CBIEnvelSDDStsRptLogMsg>
    
    
    
    </CBIBdySDDStsRpt>
    sapresti per caso darmi un'ulteriore aiuto?
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  4. #4
    Guarda, ho semplicemente preso l'esempio dal link che ti ho postato e funziona perfettamente

    http://php.net/manual/en/simplexmlel...hnamespace.php

    Spero tu lo abbia degnato almeno di un'occhiata!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Guarda, ho semplicemente preso l'esempio dal link che ti ho postato e funziona perfettamente

    http://php.net/manual/en/simplexmlel...hnamespace.php

    Spero tu lo abbia degnato almeno di un'occhiata!


    ti sbagli.. ho anche fatto una prova dove credo che sicuramente sbaglio qualcosa...



    Codice PHP:
    $xml simplexml_load_string($xmlString);$namespaces $xml->getNameSpaces(true);$xs $xml->children($namespaces['LMSG']);
    foreach( 
    $xs->OrgnlPmtInfAndSts as $val ) {    foreach( $val->TxInfAndSts as $value ) {            
    // Recupero tutti i campi da ogni tag "banca"        
    $protocollo_op $value->OrgnlTxRef->MndtRltdInf->MndtId;        
    $protocollo_op substr($protocollo_op, -4);        
    $tipo_op "RID-SDD";        
    $data_op $value->OrgnlTxRef->ReqdColltnDt;        
    $Importo_op $value->OrgnlTxRef->Amt->InstdAmt;        
    $motivazione_op $value->StsRsnInf->Rsn->Cd
    grazie sempre
    Ultima modifica di Stanislao; 20-07-2015 a 13:17
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  6. #6
    Questa la veloce prova che ho effettuato basandomi sull'esempio del manuale:

    Codice PHP:
    <?php
    $xmlstr 
    '
    <CBIBdySDDStsRpt 
        xmlns="urn:CBI:xsd:CBIBdySDDStsRpt.00.01.00" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:LMSG="urn:CBI:xsd:CBISDDStsRptLogMsg.00.01.00">

        <PhyMsgInf>...</PhyMsgInf>
        <CBIEnvelSDDStsRptLogMsg>
            <CBISDDStsRptLogMsg>
                <LMSG:GrpHdr>...</LMSG:GrpHdr>
                <LMSG:OrgnlGrpInfAndSts>...</LMSG:OrgnlGrpInfAndSts>
                <LMSG:OrgnlPmtInfAndSts>
                    <LMSG:OrgnlPmtInfId>1</LMSG:OrgnlPmtInfId>
                    <LMSG:TxInfAndSts>
                        <LMSG:OrgnlInstrId>11</LMSG:OrgnlInstrId>
                        <LMSG:OrgnlEndToEndId>00011</LMSG:OrgnlEndToEndId>
                        <LMSG:TxSts>RJCT</LMSG:TxSts>
                        <LMSG:StsRsnInf>...</LMSG:StsRsnInf>
                        <LMSG:OrgnlTxRef>
                            <LMSG:Amt>
                                <LMSG:InstdAmt Ccy="EUR">416.66</LMSG:InstdAmt>
                            </LMSG:Amt>
                            <LMSG:ReqdColltnDt>2015-07-10</LMSG:ReqdColltnDt>
                            <LMSG:CdtrSchmeId>
                                <LMSG:Nm>Sviluppo</LMSG:Nm>
                                <LMSG:Id>
                                    <LMSG:PrvtId>
                                        <LMSG:Othr>
                                            <LMSG:Id>IT580010000006983211217</LMSG:Id>
                                        </LMSG:Othr>
                                    </LMSG:PrvtId>
                                </LMSG:Id>
                            </LMSG:CdtrSchmeId>
                            <LMSG:PmtMtd>DD</LMSG:PmtMtd>
                            <LMSG:MndtRltdInf>
                                <LMSG:MndtId>BEQGT90000000000000162</LMSG:MndtId>
                                <LMSG:DtOfSgntr>2013-07-29</LMSG:DtOfSgntr>
                            </LMSG:MndtRltdInf>
                            <LMSG:RmtInf>
                                <LMSG:Ustrd>ADDEBITO 18 RATA</LMSG:Ustrd>
                            </LMSG:RmtInf>
                            <LMSG:Dbtr>
                                <LMSG:Nm>BOTTONE</LMSG:Nm>
                                <LMSG:Id>
                                    <LMSG:PrvtId>
                                        <LMSG:Othr>
                                            <LMSG:Id>BTTGNN74H24F839N</LMSG:Id>
                                        </LMSG:Othr>
                                    </LMSG:PrvtId>
                                </LMSG:Id>
                            </LMSG:Dbtr>
                            <LMSG:DbtrAcct>
                                <LMSG:Id>
                                    <LMSG:IBAN>IT71D062300000035576740</LMSG:IBAN>
                                </LMSG:Id>
                            </LMSG:DbtrAcct>
                            <LMSG:DbtrAgt>
                                <LMSG:FinInstnId>
                                    <LMSG:BIC>CRPPIT2P466</LMSG:BIC>
                                </LMSG:FinInstnId>
                            </LMSG:DbtrAgt>
                            <LMSG:Cdtr>
                                <LMSG:Nm>Sviluppo</LMSG:Nm>
                            </LMSG:Cdtr>
                            <LMSG:CdtrAcct>
                                <LMSG:Id>
                                    <LMSG:IBAN></LMSG:IBAN>
                                </LMSG:Id>
                            </LMSG:CdtrAcct>
                        </LMSG:OrgnlTxRef>
                    </LMSG:TxInfAndSts>
                </LMSG:OrgnlPmtInfAndSts>
            </CBISDDStsRptLogMsg>
        </CBIEnvelSDDStsRptLogMsg>
    </CBIBdySDDStsRpt>
    '
    ;

    $xml simplexml_load_string($xmlstr);
    $xml->registerXPathNamespace('c''urn:CBI:xsd:CBISDDStsRptLogMsg.00.01.00');
    $result $xml->xpath('//c:MndtId');

    foreach (
    $result as $MndtId) {
      echo 
    $MndtId "\n";
    }
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Questa la veloce prova che ho effettuato basandomi sull'esempio del manuale:

    inserendo l'xml nel corpo come da tuo esempio funziona...
    ma se carico l'xml da upload come da codice:
    Codice PHP:

    $file 
    $_FILES['filexml'];
    $xmlstr simplexml_load_file$file['tmp_name'] );
    $xml simplexml_load_string($xmlstr);
    $xml->registerXPathNamespace('c''urn:CBI:xsd:CBISDDStsRptLogMsg.00.01.00');
    $result $xml->xpath('//c:MndtId');
    foreach (
    $result as $MndtId) {  echo $MndtId "\n";} 
    non funziona...
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  8. #8
    Ho provato a mettere il tuo xml all'interno di un file e leggerlo con $xml = simplexml_load_file('file.xml') piuttosto che con $xml = simplexml_load_string($xmlstr) e funziona correttamente.
    A questo punto ti suggerisco di verificare l'effettivo contenuto di $file['tmp_name']
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    perfetto ho risolto,
    un ultimo aiuto poi tolgo il disturbo davvero
    sapresti indicarmi solo come recuperare i valori degli altri nodi??
    ovvero come muovermi tra i nodi?

    grazie mille
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  10. #10
    ho risolto anche con il recupero di tutte le variabili

    ma credo di sbagliare qualcosa perchè mi scrive solo il primo record...

    forse sbaglio proprio l'array?

    Codice PHP:


    $xml 
    simplexml_load_file$file['tmp_name'] );
    $xml->registerXPathNamespace('c''urn:CBI:xsd:CBISDDStsRptLogMsg.00.01.00');
    $result $xml->xpath('//c:Cd ');
    $result2 $xml->xpath('//c:MndtId ');
    $result3 $xml->xpath('//c:ReqdColltnDt ');
    $result4 $xml->xpath('//c:InstdAmt ');

    foreach (
    $result as $Cd ) {       
    foreach (
    $result2 as $MndtId ) {       
    foreach (
    $result3 as $ReqdColltnDt ) {              
    foreach (
    $result4 as $InstdAmt ) {                             

    // Recupero tutti i campi da ogni tag "banca"        

    $motivazione_op $Cd;        
    $tipo_op "RID-SDD";        
    $protocollo_op substr($MndtId, -4);        
    $data_op $ReqdColltnDt;        
    $Importo_op $InstdAmt;                          
     }}}}            

    // Creo una query di inserimento e la eseguo                 
    $sql " INSERT INTO report_esiti3 SET protocollo_op = '$protocollo_op', tipo_op = '$tipo_op',            data_op = '$data_op', Importo_op = '$Importo_op', motivazione_op = '$motivazione_op'        ";                        
    $rssql mysql_query$sql ) or die (mysql_error());        
    echo 
    $sql
    grazie infinite per il tempo che vogliate dedicarmi

    buon lavoro
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.