http://zh.wikipedia.org/w/api.php?action=parse&format=xml&page=%E7%BD%91%E7%BB%9C%E8%90%A5%E9%94%80
谁能用php把这个xml读出来,我试过一直是报这个错Warning: DOMDocument::load(http://zh.wikipedia.org/w/api.php?action=parse&format=xml&page=%E7%BD%91%E7%BB%9C%E8%90%A5%E9%94%80) [domdocument.load]: failed to open stream: HTTP request failed! in D:\Program Files\wamp\www\RSS.php on line 6
 
高手帮个忙啊 谢谢!

解决方案 »

  1.   


    $opts = array(
      'http'=>array(
        'method'=>"GET",
        'header'=>"Host: zh.wikipedia.org\r\n" . 
                  "Accept-language: zh-cn\r\n" . 
                  "User-Agent: mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9.2.3) gecko/20100401 firefox/3.6.3\r\n" .
                  "Accept: *//*"
      )
    );
    //http://rxkjfz.cn.alibaba.com/athena/contact/rxkjfz.html utf-8
    $context = stream_context_create($opts);
    $url = "http://zh.wikipedia.org/w/api.php?action=parse&format=xml&page=%E7%BD%91%E7%BB%9C%E8%90%A5%E9%94%80";
    $content=file_get_contents($url, False, $context);
    echo $content;
    $dom = new DOMDocument('1.0', 'utf-8');
    $ResultXML=$dom->loadXML($content);
      

  2.   

    dingsongtao答案是正确的,但是,为什么要这么做呢?我搞java的,php不懂!能将下原理吗?
      

  3.   

    用sampleXML,非常简单,具体操作可以看一下php_munal
      

  4.   

    需要加上访问的头。主要是Host,User-Agent对方服务器限制了的。
      

  5.   


    ini_set('user_agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3');
    $url = "http://zh.wikipedia.org/w/api.php?action=parse&format=xml&page=%E7%BD%91%E7%BB%9C%E8%90%A5%E9%94%80";
    $content=file_get_contents($url);
    $parser = xml_parser_create();                       
    xml_parse_into_struct($parser, $content, $values, $index);    
    xml_parser_free($parser);       
    echo "<pre>";                    
    print_r($values);
    echo "</pre>";