SimpleXML使用有效的XML字符串生成错误

时间:2012-01-30 05:41:20

标签: php xml codeigniter simplexml

我是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;

2 个答案:

答案 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