Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Laravel] Leggere file XML caricato e mapparlo in JSON

    ciao!

    in sostanza l'utente carica un file xml, che è una cosa del genere:
    codice:
    <dtt:richiestaAcquisizioneSchedaControlloFamiglia xmlns:dtt="http://www.dtt.it/xsd/Immatricolazioni">
        <dtt:intestazioneFamiglia>
            <dtt:omologazioneEuropea>e8*2018/858*00063*04</dtt:omologazioneEuropea>
            <dtt:dataRilascioOmologazioneEuropea>2024-02-08</dtt:dataRilascioOmologazioneEuropea>
            <dtt:costruttoreFamiglia>6554</dtt:costruttoreFamiglia>
            <dtt:marchio>23B</dtt:marchio>
            <dtt:famiglia>URBINO 12</dtt:famiglia>
            <dtt:categoriaInternazionale>M3</dtt:categoriaInternazionale>
        </dtt:intestazioneFamiglia>
        <dtt:richiestaAcquisizioneSchedaControlloFamigliaM2M3>
            <dtt:caratteristicheGeneraliDiCostruzione>
                <dtt:numeroAssi>2</dtt:numeroAssi>
            </dtt:caratteristicheGeneraliDiCostruzione>
            <dtt:dimensioniPrincipali>
                <dtt:interasse asse="12">
                    <dtt:descrizioneValoreDatoTecnicoMinimo>5900</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>5900</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:interasse>
                <dtt:lunghezza>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>12000</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>12000</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:lunghezza>
            </dtt:dimensioniPrincipali>
            <dtt:masse>
                <dtt:massaDelVeicoloInOrdineDiMarciaTara>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>9900</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>14950</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:massaDelVeicoloInOrdineDiMarciaTara>
                <dtt:massaMassimaTecnicamenteAmmissibileAPienoCarico>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>19245</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>19700</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:massaMassimaTecnicamenteAmmissibileAPienoCarico>
                <dtt:massaMassimaTecnicamenteAmmissibilePerImmatricolazione>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>19245</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>19700</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:massaMassimaTecnicamenteAmmissibilePerImmatricolazione>
                <dtt:massaTrainabileInCasoDiRimorchioATimone>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>0</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>0</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:massaTrainabileInCasoDiRimorchioATimone>
            </dtt:masse>
            <dtt:massePerAsse asse="1">
                <dtt:massaMassimaTecnicamenteAmmissibileSuAsse>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>7245</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>7700</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:massaMassimaTecnicamenteAmmissibileSuAsse>
                <dtt:massaMassimaAmmissibilePerImmatricolazioneAsse>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>7245</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>7700</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:massaMassimaAmmissibilePerImmatricolazioneAsse>
            </dtt:massePerAsse>
            <dtt:massePerAsse asse="2">
                <dtt:massaMassimaTecnicamenteAmmissibileSuAsse>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>12000</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>12000</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:massaMassimaTecnicamenteAmmissibileSuAsse>
                <dtt:massaMassimaAmmissibilePerImmatricolazioneAsse>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>12000</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>12000</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:massaMassimaAmmissibilePerImmatricolazioneAsse>
            </dtt:massePerAsse>
            <dtt:apparatoMotore>
                <dtt:codiceMotore>AVE 130</dtt:codiceMotore>
                <dtt:codiceMotore>CeTrax CX 220 110 B</dtt:codiceMotore>
                <dtt:codiceMotore>L9NE6E320</dtt:codiceMotore>
                <dtt:cilindrata>0</dtt:cilindrata>
                <dtt:cilindrata>8880</dtt:cilindrata>
                <dtt:cilindrata>0</dtt:cilindrata>
                <dtt:carburante>ELE</dtt:carburante>
                <dtt:carburante>ME</dtt:carburante>
            </dtt:apparatoMotore>
            <dtt:potenzaMotoreTermico combustibile="ME">
                <dtt:potenzaMassimaNettaMotoreTermico>235</dtt:potenzaMassimaNettaMotoreTermico>
                <dtt:regimeDiPotenzaMassima>2000</dtt:regimeDiPotenzaMassima>
            </dtt:potenzaMotoreTermico>
            <dtt:assiESospensioni>
                <dtt:carreggiata asse="1">
                    <dtt:descrizioneValoreDatoTecnicoMinimo>2085</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>2178</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:carreggiata>
                <dtt:carreggiata asse="2">
                    <dtt:descrizioneValoreDatoTecnicoMinimo>1826</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>1888</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:carreggiata>
            </dtt:assiESospensioni>
            <dtt:pneumatico ruota="1" asse="1">
                <dtt:larghezzaPneumatico>275</dtt:larghezzaPneumatico>
                <dtt:coefficienteDiRibassamento>70</dtt:coefficienteDiRibassamento>
                <dtt:raggioRuota>22,5</dtt:raggioRuota>
                <dtt:indiceDiCarico>148</dtt:indiceDiCarico>
                <dtt:indiceDiVelocita>J</dtt:indiceDiVelocita>
            </dtt:pneumatico>
            <dtt:pneumatico ruota="1" asse="2">
                <dtt:larghezzaPneumatico>275</dtt:larghezzaPneumatico>
                <dtt:coefficienteDiRibassamento>70</dtt:coefficienteDiRibassamento>
                <dtt:raggioRuota>22,5</dtt:raggioRuota>
                <dtt:indiceDiCarico>145</dtt:indiceDiCarico>
                <dtt:indiceDiVelocita>J</dtt:indiceDiVelocita>
            </dtt:pneumatico>
            <dtt:prestazioniAmbientali>
                <dtt:emissioniGasScaricoNumeroAttoNormativo>ZZ</dtt:emissioniGasScaricoNumeroAttoNormativo>
                <dtt:emissioniGasScaricoNumeroAttoNormativo>C27</dtt:emissioniGasScaricoNumeroAttoNormativo>
            </dtt:prestazioniAmbientali>
            <dtt:prestazioniAmbientaliMotoreElettrico>
                <dtt:potenzaMassima30MinutiMotoreElettrico>225</dtt:potenzaMassima30MinutiMotoreElettrico>
            </dtt:prestazioniAmbientaliMotoreElettrico>
            <dtt:proceduraDiProva4 combustibile="ME">
                <dtt:particolatoProceduraDiProvaWhtcMgKw>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>0.1</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>0.1</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:particolatoProceduraDiProvaWhtcMgKw>
                <dtt:noxProceduraDiProvaWhtcMgKw>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>76.73</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>76.73</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:noxProceduraDiProvaWhtcMgKw>
                <dtt:nh3ProceduraDiProvaWhtcMgKw>
                    <dtt:descrizioneValoreDatoTecnicoMinimo>0.73</dtt:descrizioneValoreDatoTecnicoMinimo>
                    <dtt:descrizioneValoreDatoTecnicoMassimo>0.73</dtt:descrizioneValoreDatoTecnicoMassimo>
                </dtt:nh3ProceduraDiProvaWhtcMgKw>
            </dtt:proceduraDiProva4>
        </dtt:richiestaAcquisizioneSchedaControlloFamigliaM2M3>
    </dtt:richiestaAcquisizioneSchedaControlloFamiglia>
    in un progetto laravel 10, devo leggere il file che l'utente mi invia in POST e mapparlo in JSON.
    in pratica i valori dopo il dtt: devono diventare i campi del JSON.

    solo che ho diversi problemi che non riesco a capire.
    questo l'ultimo tentativo fatto:
    codice:
    public function add(Request $req) {
        $data = $req->all();
    
    
        if (!empty($data)) {
          $uploadedFile = $req->file('file');
          $fileContents = file_get_contents($uploadedFile);
          $fileContents = str_replace(array("\n", "\r", "\t"), '', $fileContents);
          $fileContents = trim(str_replace('"', "'", $fileContents));
    
    
          $xml = new SimpleXMLElement($fileContents);
          var_dump($xml);
    
    
        } else {
          return response()->json(array(
              "res" => "ko",
              "message" => "Dati mancanti!"
          ));
        }
      }
    questo quello che ricevo:
    codice:
    object(SimpleXMLElement)#1324 (0) {
    }
    consigli??

  2. #2

  3. #3
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    ciao!

    non conoscevo proprio, grazie!

    ho risolto così:
    codice:
    $xml = str_replace('dtt:', '', file_get_contents('g1.xml'));
    $json = Laminas\Xml2Json\Xml2Json::fromXml($xml, true);
    var_dump($json);
    ho dovuto fare pulizia preventiva di tutti i dtt:, sennò andava in errore.

    grazie!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.