从URL加载XML文件

时间:2013-04-26 05:09:03

标签: php xml

我想从网址读取XML文件,然后从我的XML文件中检索信息。

<?php
  if( $_POST["name"])
  {
    ini_set('allow_url_fopen ','ON');
    $completeurl = "http://localhost:8983/solr/select?q=".$_POST['name'];
    $xml = simplexml_load_file(file_get_contents($completeurl));  
    exit();
  }
?>
<html>
<body>
  <form action="<?php $_PHP_SELF ?>" method="POST">
  Search: <input type="text" name="name" />
  <input type="submit" />
  </form>
</body>
</html>

当我向表单写一些输入时,它显然设法检索某些内容,但我也收到这样的消息:

Warning: simplexml_load_file() [function.simplexml-load-file]: 
I/O warning : failed to load external entity "<?xml version="1.0" encoding="UTF-8"?> 
<response> <lst name="responseHeader"><int name="sta....

如何从网址中提取xml-info?

3 个答案:

答案 0 :(得分:4)

调用file_get_contents()后,您已将远程文件的内容包含在字符串中。请改用simplexml_load_string()

$xml = simplexml_load_string(file_get_contents($completeurl)); 

但更简单的方法是使用simplexml_load_file()直接加载文件。请注意,该函数支持HTTP URL:

$xml = simplexml_load_file($completeurl);

答案 1 :(得分:2)

simplexml_load_file()采用文件名,您希望改为使用simplexml_load_string(file_get_contents($completeurl))simplexml_load_file($completeurl)

答案 2 :(得分:0)

如上所述,您从本地主机加载xml,以便提供

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

如果您使用的是php版本&lt; 5

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