无法打印SimpleXML元素

时间:2013-09-23 00:31:06

标签: php simplexml

有这样的代码:

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工作?我卡在这里,几乎头痛。

2 个答案:

答案 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的想法!