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

    SimpleXML manipolare sezioni CDATA

    Come da topic ho il solito problema con XML e PHP, ma guardando in giro non ho mai trovato una soluzione chiara!

    Ora mi spiego:
    vorrei scrivere e leggere da un file xml dove ci sono dei campi che sono codice html, la soluzione per scrivere sarebbe fargli scrivere una stringa come questa nel tag che mi interessa <![CDATA[ io sono il testo e anche l'html e qualche altra cosa &%<> ]]>

    fin qui tutto ok, il problema sta nel fatto che ovviamente quando utilizzo questo
    Codice PHP:
    $stringa "<![CDATA[ io sono il testo e anche [b]l'html[/b] e qualche altra cosa &%<> ]]>";
    $xml simplexml_load_file($file); 
    $news $xml->addChild('articolo'$stringa);
    file_put_contents($file$xml->asXML()); 
    la $stringa viene parsata e crea errori o viene inserito male, come ovviare a questo problema?

    ho provato a cercare su internet, trovando estensioni alla classe come questa
    Codice PHP:
    class SimpleXMLExtended extends SimpleXMLElement {
      public function addCData($cdata_text) {
        $node= dom_import_simplexml($this);
        $no = $node->ownerDocument;
        $node->appendChild($no->createCDATASection($cdata_text));
      }
    }

    // come utilizzarlo
    $xml = new SimpleXMLExtended('<?xml version "1.0" encoding "UTF-8"?><root></root>');
    $mynode = $xml->addChild("myname");
    $mynode->addCData("my name contains everything I want &%<>");
    echo $xml->asXml();
    io utilizzerei anche la classe qui sopra, ma ho problemi ad integrarla.
    una funzioncina tipo questa?
    Codice PHP:
    function InserisciCData($strxml$child$stringa) {
       
    $xml = new SimpleXMLExtended($strxml);
       
    $mynode $xml->addChild($child);
       
    $mynode->addCData($stringa);
       return 
    $xml->asXml(); // Ritorna la stringa giusta
    }

    $stringa "<![CDATA[ io sono il testo e anche [b]l'html[/b] e qualche altra cosa &%<> ]]>";
    $xml simplexml_load_file($file); 
    $xmlToAddInserisciCData($xml->asXML(), 'articolo'$stringa); // qui dovrei ricollegare quello che ho fatto con l'xml precedente
    // A questo punto come faccio ad aggiungere l'xml che mi serve a quello precedente?

    file_put_contents($file$xml->asXML()); 

  2. #2
    up!

  3. #3
    Utente di HTML.it L'avatar di lloyd27
    Registrato dal
    Mar 2006
    Messaggi
    256
    Mi faccio un pò di pubblicità da solo..

    http://forum.html.it/forum/showthrea...readid=1306132

  4. #4
    ottimo, appena finisco questo script ci guardo seriamente, poi ti dico tutto

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.