有这样的代码:
if (file_exists('my.xml')) {
$xml = simplexml_load_file('my.xml');
if($xml === NULL)
echo('ERR NULL $xml</br>');
else{
echo('> my.xml opened</br>');
print_r($xml);
}
}
foreach($xml->data->record as $records){
echo $records->data_to_retrive, PHP_EOL;
}
echo('> Ended</br');
现在,输出看起来像这样:
> my.xml opened
> Ended
那有什么不对吗?为什么不t show data_to_retrive, and print_r($xml) don
工作?我卡在这里,几乎头痛。
答案 0 :(得分:0)
simplexml_load_file如果失败,则会返回false
。因此,您可能无法使用===
将返回值与NULL
进行比较,因为false === NULL
会失败。您可以使用
if($xml === false)
代替。
答案 1 :(得分:0)
$file = fopen('my.xml','r');
$prexml = fread($file, filesize('my.xml'));
$prexml = preg_replace('#<([0-9]+)>#si','<z$1>',$prexml);
$prexml = preg_replace('#</([0-9]+)>#si','</z$1>',$prexml);
echo('> File opened</br>');
$xml = new SimpleXMLElement($prexml);
好的,我修复了my.xml,现在正在运行。谢谢Young的想法!