Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Update Xml complesso

  1. #1

    Update Xml complesso

    Buongiorno,
    ho un problema a fare un update con PHP di un file xml e inserendo i dati di un array all' interno dei campi del file xml.
    La struttura del XML è questa:

    [/CODE]

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <DATAPACKET Version="2.0">
    <METADATA>
    <FIELDS>
    <FIELD attrname="Id" fieldtype="i4" readonly="true" SUBTYPE="Autoinc"/>
    <FIELD attrname="Testo" fieldtype="string" WIDTH="360"/>
    <FIELD attrname="Risposta" fieldtype="boolean"/>
    <FIELD attrname="Aiuto" fieldtype="string" WIDTH="128"/>
    <FIELD attrname="Foto1" fieldtype="string" WIDTH="5"/>
    <FIELD attrname="Info2" fieldtype="string" WIDTH="40"/>
    </FIELDS>
    <PARAMS AUTOINCVALUE="5543"/>
    </METADATA>
    <ROWDATA>
    <ROW Id="500" Blocco="03005" Testo="Pippo PLUTOPippo PLUTOPippo PLUTOPippo PLUTO" Info1="" Info2="Pippo PLUTO"/>
    <ROW Id="501" Blocco="03005" Testo="Pippo PLUTOPippo PLUTOPippo PLUTOPippo PLUTO" Info1="" Info2="Pippo PLUTO"/>
    <ROW Id="502" Blocco="03005" Testo="Pippo PLUTOPippo PLUTOPippo PLUTOPippo PLUTO" Info1="" Info2="Pippo PLUTO"/>
    <ROW Id="503" Blocco="03005" Testo="Pippo PLUTOPippo PLUTOPippo PLUTOPippo PLUTO" Info1="" Info2="Pippo PLUTO"/>
    [CODE]

    io ho provato a fare qualcosa del genere ,ma invece di fare l' update dei campi giusti mi inserisce cose nei posti sbagliati:

    codice:
     foreach($xml2 as $record){
            for($i=0;$i<4956;$i++){
                $id=$record->ROW[$i]["Id"];
                $Testo=$record->ROW[$i]["Testo"];
                $Risposta=$record->ROW[$i]["Risposta"];
                $Aiuto=$record->ROW[$i]["Aiuto"];
                $Foto1=$record->ROW[$i]["Foto1"];
                $Info2=$record->ROW[$i]["Info2"];
    
    
                if($array_appoggio[$i]["id"]==$id){
                    $record->ROW[$i]["Aiuto"]=$array_appoggio[$i]["Aiuto"];
                    $record->ROW[$i]["Foto1"]=$array_appoggio[$i]["Foto1"];
                    $record->ROW[$i]["Info2"]=$array_appoggio[$i]["Info2"];
                }
            }
    
    
        }
    
    
        if(file_put_contents("x2.XML",$xml2->saveXML())){
            echo("file modificato");
        }else{
            echo("errore");
        }
    Non riesco ad entrare dentro alle ROW per modificare i campi all' interno, idee?

  2. #2
    Perchè non usi le funzioni native Xml di Php?

    Comunque, se non ci sono dei pezzi prima che non hai messo, foreach($xml2 as $record){ ti porta dentro ROWDATA, che è composto da tanti ROW, se non sbaglio

  3. #3
    Dopo aver scritto ci sto provando, comunque sì mi porta dentro ROW e questo penavo fosse il modo per raggiungere l'id che è un attributo di ROW,
    $id=$record->ROW[$i]["Id"];
    però quando faccio if($array_appoggio[$i]["id"]==$id){
    e trovo gli id uguali a quel punto non so qual è il modo corretto di modificare i vari attributi o se non sono presenti sulla riga aggiungerli.

Tag per questa discussione

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.