我的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);
有人可以帮助我吗?
答案 0 :(得分:0)
我看到了您错误消息的这一部分:SimpleXMLElement->__construct('<code><span sty...')
有了这个,我可以看到你的xml中有HTML代码,我想它的样式。从XML中删除它,它应该工作。
提示:在调试时不要使用echo,而要使用var_dump作为输出。你会看到这个。