PHP从URL解析XML

时间:2013-09-30 20:34:45

标签: php xml xml-parsing

我正在使用此代码从URL获取一些XML:

$url = 'http://shelly.ksu.ru/e-ksu/get_schedulle_aud?p_id=563';
$xml = simplexml_load_file($url);
print_r($xml);

这给了我一个空的结果,但是以下链接给了我正确的结果:

$url = 'http://habrahabr.ru/rss';

我似乎无法看到这些链接之间的区别,我不知道如何在Google上找到答案。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

这个xml文件字符集不是UTF8字符集,但你可以看到StdObject:

    <?php
    header('Content-type: text/html; charset=utf-8');

    $url = 'http://shelly.ksu.ru/e-ksu/get_schedulle_aud?p_id=563';
    $data = file_get_contents($url);
    $data = iconv(mb_detect_encoding($data, mb_detect_order(), true), "UTF-8", $data);
    $xml = simplexml_load_string($data);

    print_r($xml);

答案 1 :(得分:0)

好的,这项工作完美无缺:

header("Content-Type: text/plain; charset=utf8");
$url = 'http://shelly.ksu.ru/e-ksu/get_schedulle_aud?p_id=563';
$xml_string = file_get_contents($url);

$utf_xml_string = iconv("cp1251", "utf8", $xml_string);
print_r(" *** iconv() ***\n");
print_r($utf_xml_string);   
print_r("\n\n");

我正在使用iconv转换字符串。