PHP未捕获异常'Exception',消息'String无法解析为XML

时间:2015-06-05 10:03:52

标签: php xml simplexml

我的php函数SimpleXMLElement有问题。 这是我的代码:

 echo $xmldata;
 $nodes = new SimpleXMLElement($xmldata);  

使用此代码,我有以下输出:

 <?xml version="1.0" encoding="utf-8"?>
 <node>
   <node>
     <title>CONTENT DI PROVA</title>
     <body>CIAO CIAO
 </body>
     <created>Thursday, June 4, 2015 - 17:37</created>
     <type>Article</type>
     <field_geoposition>Geolocation is 45.4654219, 9.18592430000001</field_geoposition>
     <path>/Argomentiamo/?q=node/1</path>
   </node>
 </node>

 Fatal error: Uncaught exception 'Exception' with message 'String could not be   parsed as XML' in
  /membri/****/*****/****:50 Stack trace: #0 /membri/****/*****/****(50): SimpleXMLElement->__construct('<code><span sty...') #1 /membri/****/*****/****(101): xmlToArel() #2 {main} thrown in /membri//****/*****/**** on line 50

但是如果我用SimpleXMLElement函数中的输出替换$ xmldata,就像这样:

echo $xmldata;

 $nodes = new SimpleXMLElement( '<?xml version="1.0" encoding="utf-8"?>
 <node>
   <node>
     <title>CONTENT DI PROVA</title>
     <body>CIAO CIAO
     </body>
     <created>Thursday, June 4, 2015 - 17:37</created>
     <type>Article</type>
     <field_geoposition>Geolocation is 45.4654219, 9.18592430000001</field_geoposition>
     <path>/Argomentiamo/?q=node/1</path>
   </node>
 </node>'/*$xmldata*/);

我没有错误......

编辑: 也许问题是我使用highlight_string来保存我的xml:

 $ch = curl_init($xmlsource); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
 $sorgente = curl_exec($ch); 
 curl_close($ch);
 $xmldata = highlight_string($sorgente,true); 

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我看到了您错误消息的这一部分:SimpleXMLElement->__construct('<code><span sty...')

有了这个,我可以看到你的xml中有HTML代码,我想它的样式。从XML中删除它,它应该工作。

提示:在调试时不要使用echo,而要使用var_dump作为输出。你会看到这个。