Sürece XML dosyası iyi oluşmuş değil gibi, SimpleXML sen SimpleXML beslemeden önce bu XML dosyasında bazı dize işlemleri yapmak gerekebilir, yük ... Bu yüzden olmaz.
Bu "MEMCACHE boş" şey her zaman aynı ise str_replace dayalı oldukça basit bir şey yapmak olabilir; Başka bazı regex muhtemelen hile yapacak ;-)
Yani:
Belki de gerçekten "temiz" değil ... Ama çalışması gerektiğini, hızlı ve basit ...
For instance, if your non-XML looks like this :
$xml_string = <<<XML
<!-- MEMCACHE empty -->
<?xml version="1.0" ?>
<data>
<glop>TEST</glop>
<other>GLOP</other>
</data>
XML;
Bunu kullanmak isteyebilirsiniz:
$real_xml_string = str_replace("<!-- MEMCACHE empty -->\n", '', $xml_string);
Note the "\n
"sonunda: Eğer ;-) o satırsonunu kaldırmak gerekir em>
Hangi size içeren bir dize verir:
<?xml version="1.0" ?>
<data>
<glop>TEST</glop>
<other>GLOP</other>
</data>
Hangi iyi biçimlendirilmiş XML; bu yüzden şimdi yükleyebilirsiniz:
$xml = simplexml_load_string($real_xml_string);
var_dump($xml);
Ve ne istediğini olsun:
object(SimpleXMLElement)[1]
public 'glop' => string 'TEST' (length=4)
public 'other' => string 'GLOP' (length=4)
If the "status" in the MEMCACHE thing is not always "empty", you might use some regex ; something like this, I guess, might do, instead of the str_replace
call :
$real_xml_string = preg_replace("#<!-- MEMCACHE (\w+) -->\n#", '', $xml_string);
(Might need to be adapted a bit, depending on your needs)
Of course, in your case, $xml_string
would not be stored in the source code, but obtained via something like curl or file_get_contents
, I suppose.