我是PHP 5.2.6中使用Codeigniter的SimpleXML的新手,并且收到了以下错误。无论我尝试什么,我都无法从解析器中获得任何输出。
我已经检查过XML是否有效。我已经确认字符串是用XML填充的,并且还替换了其他有效的XML字符串来确认。
我在这个特定领域相当新,所以任何帮助都会很棒。
错误讯息:
消息:SimpleXMLElement :: __ construct()[simplexmlelement .-- construct]:实体:第12行:解析器错误:开始标记期望,'<'找不到
代码示例:
$xmlClean = simplexml_load_string($xml);
$xmlData = new SimpleXMLElement($xmlClean);
echo $xmlData->person[0]->id;
答案 0 :(得分:0)
我能够通过以下方式解决我的问题:
$string = <<<XML
$xml
XML;
像这样包装$ xml然后允许它工作:
$xmlData = simplexml_load_string($string);
var_dump($xmlData);
希望有人觉得这很有帮助。
答案 1 :(得分:0)
我自己在使用SimpleXML对象时遇到了一些麻烦......我意识到XML元素的值不是字符串,自己购买SimpleXML对象......
要解决此问题,当我想使用SimpleXML对象的字符串时,使用get_object_vars将对象转换为关联数组。
$data = get_object_vars($xml);
echo $data['element1']; //Outputs the value of the element1 element