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

    simplexml editare un xml

    ciao ragazzi ho un semplice database.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <ciao>
    <oggetto url="perocorso.jpg"></oggetto>
    </ciao>

    qualcuno potrebbe aiutarmi a scrivere una paginetta php con simpleXml per modificare l'attributo url?

    Ho letto alcune guide, ma non ho capito come poter modificare un singolo attributo.

    Grazie se mi date una mano!

  2. #2
    La lettura è abbastanza banale:

    Codice PHP:
    $url = (string) $xml->oggetto[0]['url']; 
    La scrittura effettivamente non è ben documentata. Potresti provare il seguente:

    Codice PHP:
    // Prima soluzione
    $xml->oggetto[0]['url'] = 'nuovo_url';

    // Seconda soluzione
    $xml->oggetto[0]->addAttribute('url''nuovo_url'); 

  3. #3
    questo tipo di script salva il file.xml sul server?

  4. #4
    Originariamente inviato da punkamorfo
    questo tipo di script salva il file.xml sul server?
    Ehm no, rispondevo alla tua domanda. Presupponevo che avessi già il tuo elemento SimpleXML in $xml. Il contenuto di un SimpleXML lo ottieni col metodo asXML(), che presupponevo tu giassapessi dato che hai letto alcune guide.

    Per salvarlo sul server basta fare:

    Codice PHP:
    file_put_contents ('risultato.xml'$xml->asXML()); 

  5. #5
    ok, infatti avevo provato ad usare ->asXML() , però non c'era scritto quel pezzo prima: file_put_contents.

    echo $xml->asXML() per stampare e salvare il file. questo riportava la guida.

    grazie, proverò e vi farò sapere!

  6. #6
    ringrazio tantissimo per l'aiuto.
    Riepilogo:
    dato il file risultato.xml presente sul server:

    <?xml version="1.0" encoding="UTF-8"?>
    <slideshow>
    <photo link="foto/events/events1.png" />
    </slideshow>


    lo modifico con:
    Codice PHP:
    <?php
    $xml 
    simplexml_load_file("risultato.xml");
    $xml->photo[0]["link"] = "nuovo_url"
    file_put_contents("risultato.xml"$xml->asXML());
    ?>
    un altra piccola richiesta:
    se volessi aggiungere e cancellare uno dei nodi?

  7. #7
    Per aggiungere usa il metodo addChild():
    Codice PHP:
    $nuova_foto $xml->addChild('photo');
    $nuova_foto->addAttribute('link''/foto/nuova_foto.jpg'); 
    http://www.php.net/manual/it/functio...t-addChild.php

    Per eliminare fai l'unset() del nodo:
    Codice PHP:
    unset($xml->photo[0]); 

  8. #8
    bene, son riuscito a creare un'interfaccia in flash che mi permette di leggere dal file xml quanti collegamenti ho, con il relativo nome, decidere quale eliminare specificando la posizione, e aggiungerne uno alla volta specificando il nome dell'attributo.
    L'unica cosa in cui non riesco, è stabilire la posizione dei nuovi elementi, infatti riesco ad aggiungerli solo in coda.
    dopo aver letto quel link, addChild() mi sembra ke non abbia parametri per definire la posizione del nuovo elemento.

  9. #9
    con simpleXml sono apposto, ma per un altro lavoro non avendo a disposizione php5, ho optato per un altro metodo.
    creo un oggetto xml in flash e lo invio come viariabile post.

    L unica cosa ke non mi spiego e perkè quando l xml viene salvato sul server, le " vengono sostituite con \" E quindi il file.xml non viene letto.
    Suggerimenti per ovviare a questo problema?

  10. #10
    Io ho un'esigenza leggermente diversa.
    Dovrei fare riferimento al child in maniera dinamica, cioè, io ho un XML strutturato così:

    codice:
    <titoli.xml>
    <mia_immagine.jpg>ciccio</mia_immagine.jpg>
    <altra.jpg>pasticcio</altra.jpg>
    </titoli.xml>
    e devo far riferimento ad un child attraverso una variabile php:

    Codice PHP:
    $Xml_obj->$Mio_array[$image]=$new_title
    Dove $Xml_obj è l'oggetto SimpleXMLElement, $Mio_array[$image] contiene mia_immagine.jpg e $new_title contiene il testo che andrà al posto di 'ciccio'.

    Inutile dire che non funziona con il metodo descritto in questo topic.


    Ciaooooooooo!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

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.