警告:simplexml_load_file()[function.simplexml-load-file]:I / O警告:无法加载外部实体

时间:2012-03-19 14:08:46

标签: php

  

警告:simplexml_load_file()[function.simplexml-load-file]:I / O   警告:无法加载外部实体   “USD_en_productdata / USD_en_productdata.xml”

代码

$src=simplexml_load_file("USD_en_productdata/USD_en_productdata.xml");

foreach($src->ProductItem as $i){
}

2 个答案:

答案 0 :(得分:6)

如果您尝试加载服务器上保存的xml,请尝试传递完整目录路径

simplexml_load_file($_SERVER['DOCUMENT_ROOT'].'/uproYourFoldet/USD_en_productdat/USD_en_productdata.xml')

或者如果你想通过http协议访问xml,你需要在php.ini或

中设置allow_url_fopen ON
ini_set('allow_url_fopen ','ON');
你的代码中的

。或者如果你使用的是php版本< 5

,你也可以这样做
$temp = file_get_contents($url);
 $XmlObj = simplexml_load_string($temp); 

答案 1 :(得分:2)

看起来您的路径可能不正确。

根据我的经验,最好使用带有file_exists(...)作为条件的if语句来包围simplexml_load_file和后续函数。

所以在你的情况下:

if(file_exists($_SERVER['DOCUMENT_ROOT'].'/yourPathToFile/...')) {
simplexml_load_file($_SERVER['DOCUMENT_ROOT'].'/urltoYourFolder/USD_en_productdat/USD_en_productdata.xml')
}

编辑:拼写