Visualizzazione risultati 1 fino 5 di 5

Discussione: [PHP] Funzione asXML con indentazione

  1. #1
    Guest

    Predefinito [PHP] Funzione asXML con indentazione

    Ciao a tutti, vorrei indentare il codice restituito dalla funziona asXML della classe SimpleXMLElement. Come è possibile ciò? Ecco il risultato che ottengo:
    Codice PHP:
    <?xml version="1.0"?>
    <pages>
    <page id="1">
    <title>Profilo</title>
    <text>Ciao a tutti, bla bla &lt;a href="http://ciao.com"&gt;aaa&lt;/a&gt; and also ahahahahah</text>
    </page>

    <page id="2">
    <title>Contatti</title>
    <text>Ed ecco tutto etc etc etc........................</text>
    </page>
    <page id="3"><title></title><text>dddd&lt;br&gt;</text></page></pages>
    I primi due sono fatti "manualmente" invece il terzo è fatto da PHP.
    Come posso risolvere? Il mio codice è molto semplice:
    Codice PHP:
    $pages = new SimpleXMLElement("altro/pages.xml",LIBXML_NOCDATA,TRUE);
    $newid = count($pages)+1;

    $page = $pages->addChild("page");
    $page->addAttribute("id",$newid);
    $page->addChild("title",$title);
    $page->addChild("text",$text);

    echo
    "<pre>".htmlspecialchars($pages->asXML())."</pre>";
    Grazie mille!! ^-^
    Ciao, Davide!!

  2. #2
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Devi passare per DOMDocument, settando formatOutput a true.

    Ciao!

  3. #3
    Guest

    Predefinito

    Restituisce un errore.... come mai?
    Parse error: syntax error, unexpected T_DOUBLE_ARROW in admin.php on line 41
    Codice PHP:
    $asXML = $pages->asXML();

    $dom = new DOMDocument("1.0");
    $dom_file = $dom->importNode($asXML,"formatOutput"=>true); # ---> line 41
    $dom_file = $dom->appendChild($asXML);

    $result = $dom->saveXML();
    echo
    "<pre>".htmlspecialchars($result)."</pre>";

  4. #4
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    In teoria così dovrebbe andare...

    Codice PHP:
    $domDoc = new DOMDocument();
    $domDoc -> formatOutput = true;
    $domDoc -> loadXML($pages->asXML());
    $result = $domDoc ->saveXML();
    echo
    '<pre>', htmlspecialchars($result), '</pre>';
    Studia il codice, non lo copiare spudoratamente

    Ciao!
    Ultima modifica di programmazioned : 03-11-2010 alle ore 20.02.18 Motivo: easier

  5. #5
    Guest

    Predefinito

    Allora nono... io di solito non copio "spudoratamente" i codici xD
    Se c'è qualcosa che non va la modifico per adattarla a quello che devo fare! =)
    Comunque... il risultato non cambia.... e addirittura rimuove pure il <![CDATA]>
    Codice:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <pages>
        <page id="1">
            <title>Profilo</title>
            <text>Ciao a tutti, bla bla &amp;lt;a href="http://ciao.com"&amp;gt;aaa&amp;lt;/a&amp;gt; and also ahahahahah</text>
        </page>
        
        <page id="2">
            <title>Contatti</title>
            <text>Ed ecco tutto etc etc etc........................</text>
        </page>
    <page id="3"><title>ssssssssssssssss</title><text>sssssssssssssssssssssssssss&lt;br&gt;</text></page></pages>
    Originale invece...
    Codice:
    <?xml version="1.0" encoding="iso-8859-1" ?>
    
    <pages>
        <page id="1">
            <title><![CDATA[Profilo]]></title>
            <text><![CDATA[Ciao a tutti, bla bla &lt;a href="http://ciao.com"&gt;aaa&lt;/a&gt; and also ahahahahah]]></text>
        </page>
        
        <page id="2">
            <title><![CDATA[Contatti]]></title>
            <text><![CDATA[Ed ecco tutto etc etc etc........................]]></text>
        </page>
    </pages>
    Grazie mille! ^^

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •