我一直有一个问题,我的一个变量$ xml在它应该返回一个对象时一直被误认为是一个布尔值。
我已经尝试将$ xml更改为$ data ...想想这可能是一个命名问题。
我也试过隔离str()函数,但是它被识别为字符串 - 这是正确的。
我也尝试过使用gettype(simplexml_load_string(str());它也会返回一个bool。
请让我知道我可能做错了什么:
function str() {
if(file_exists(__DIR__ . '/../' . $clientXML)) {
return file_get_contents(__DIR__ . '/../' . $clientXML);
} else {
return file_get_contents(__DIR__ . '/../xml-skeleton.xml');
}
}
$xml = simplexml_load_string(str());
echo 'XML IS: ' . gettype($xml);
答案 0 :(得分:0)
如果simplexml_load_string无法解析xml字符串,则返回FALSE。您可以像这样处理/检查错误:
<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if ($sxe === false) {
echo "Failed loading XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}
?>
取自:http://us3.php.net/manual/en/simplexml.examples-errors.php