Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: PHP e XML fatal error

  1. #1

    [URGENTE] PHP e XML fatal error

    ciao a tutti... io ho questo codice:
    Codice PHP:
    $dirs glob("../xml/*");    
        
    $domxml = new DOMDocument('1.0');
    $root $domxml->append_child($domxml->create_element('indice'));    

    for(
    $i=0;$i<count($dirs);$i++){
        
        
    $explode explode("/",$dirs[$i]);
        
    $nome_categoria $explode[count($explode)-1];
        
    //echo $nome_categoria."
    ";
        
    $files = glob($dirs[$i]."/*.xml");

        $categoria = $root->append_child($domxml->create_element('categoria'));
        $categoria->set_attribute("nome", $nome_categoria);
        
        for($j=0;$j<count($files);$j++){
            //echo $files[$j]."
    ";
            $explode_f = explode("/",$files[$j]);
            $nome_file = $explode_f[count($explode_f)-1];
            $pagina = $categoria->append_child($domxml->create_element('pagina'));
            $pagina->append_child($domxml->create_text_node("/xml/$nome_categoria/".$files[$j]));
        }
    }    
    echo $domxml->saveXML(); 
    e quando lo eseguo mi viene restituito questo errore fatale:
    codice:
    Fatal error: Call to a member function on a non-object in e:\programmi\easyphp1-8\www\portaleiacs\php\crea_indice.php on line 15
    la linea 15 è questa:
    Codice PHP:
    $categoria $root->append_child($domxml->create_element('categoria')); 
    è la prima volta che uso queste funzioni per creare dell'xml con php quindi non saprei proprio qual'è il problema =\

    Spero qualcuno possa aiutarmi
    Grazie in anticipo
    Flash Developer for Rich Media
    PHP, jQuery Developer

  2. #2
    Mi sa che tu hai fatto un po' di confusione tra DOM XML e DOM:

    http://it2.php.net/manual/it/book.domxml.php

    http://it2.php.net/manual/it/book.dom.php

    Le funzioni che usi sono di DOM XML, mentre il costruttore del Document che usi è DOM

  3. #3
    ops... e com'è il costruttore di un DOMxml?

    EDIT:
    Codice PHP:
    $dirs glob("../xml/*");    
        
    $domxml domxml_new_doc('1.0');
    $root $domxml->append_child($domxml->create_element('indice'));    

    for(
    $i=0;$i<count($dirs);$i++){
        
        
    $explode explode("/",$dirs[$i]);
        
    $nome_categoria $explode[count($explode)-1];
        
    //echo $nome_categoria."
    ";
        
    $files = glob($dirs[$i]."/*.xml");

        $categoria = $root->append_child($domxml->create_element('categoria'));
        $categoria->set_attribute("nome", $nome_categoria);
        
        for($j=0;$j<count($files);$j++){
            //echo $files[$j]."
    ";
            $explode_f = explode("/",$files[$j]);
            $nome_file = $explode_f[count($explode_f)-1];
            $pagina = $categoria->append_child($domxml->create_element('pagina'));
            $pagina->append_child($domxml->create_text_node("/xml/$nome_categoria/".$files[$j]));
        }
    }    
    $domxml->dump_file("indice.xml", false, true); 
    ho sistemato così... non mi restituisce più nessun errore.... però non mi crea nemmeno nessun documento xml =\
    Flash Developer for Rich Media
    PHP, jQuery Developer

  4. #4
    se lo prendi da un file :

    http://it2.php.net/manual/it/functio...-open-file.php

    se lo crei con una stringa XML

    http://it2.php.net/manual/it/functio...l-open-mem.php

    altrimenti puoi usare

    http://it2.php.net/manual/it/functio...ml-new-doc.php

    Ma la funzione è sperimentale, io piuttosto proverei:

    $dom = domxml_open_mem('<?xml version="1.0" encoding="UTF-8"?>');

  5. #5
    E come faccio per scrivere tutto su un file?

    ho provato a fare come nell'edit del mio scorso post... ma nn si crea nessun file.... =\

    Grazie ancora ^^
    Flash Developer for Rich Media
    PHP, jQuery Developer

  6. #6
    prova questo:

    echo "<PRE>";
    echo htmlentities($doc->dump_mem(true));
    echo "</PRE>";

    e vedi se ti crea la struttura corretta. Se te la crea allora i problemi possono essere:
    Path non raggiungibile
    Path non aperto in scrittura


    Prova anche a fare:

    $doc->dump_file(realpath("test.xml"),false,true);

  7. #7
    allora... la struttura c'è...
    il file indice.xml non esiste ma speravo lo creasse lui sul momento.
    In ogni caso non funziona nemmeno se glielo creo io.

    il realpath() mi resistuisce un warning
    codice:
    Warning: dump_file(): Invalid argument in e:\programmi\easyphp1-8\www\portaleiacs\php\crea_indice.php on line 26
    a sto punto credo siano i permessi... io ho Vista HomePremium... nel pannello di Protezione della cartella ho datto a tutti tutti i permessi... ma ancora niente .____.

    cmq si è proprio un fattore di permessi visto che sul mio server UNIX funziona...
    però vorrei farlo andare anche in locale...
    Flash Developer for Rich Media
    PHP, jQuery Developer

  8. #8
    Beh, scusa, ma esiste quel file? perché se non esiste lo devi prima creare

  9. #9
    si ora esiste....
    ma cmq su vista nn funziona nonostante abbia cambiato i vari permessi....
    Flash Developer for Rich Media
    PHP, jQuery Developer

  10. #10
    Ma il dump_file ora funziona?

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.