simplexml_import_dom - не работает - PullRequest
0 голосов
/ 25 августа 2009
if (file_exists('http://something_from_a_url.xml')) {
    $xml = simplexml_import_dom('http://something_from_a_url.xml');

    print_r($xml);
} else {
    exit('Failed to open xml file.');
}

когда я выполняю этот код, который говорит, что не удалось открыть, я не понимаю, почему ..

Ответы [ 6 ]

1 голос
/ 25 августа 2009

simplexml_import_dom принимает узел DOM, а не URL. Вы должны использовать simplexml_load_file intead:

$xml = simplexml_load_file('http://something_from_a_url.xml');
print_r($xml);
0 голосов
/ 25 августа 2009

работает наоборот, не знаю почему - но решено

0 голосов
/ 25 августа 2009

Что значит

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$contents = file_get_contents('http://something_from_a_url.xml');
echo '<div>Debug: len(contents)=', strlen($contents), "</div>\n";

libxml_use_internal_errors(true);
libxml_clear_errors();
$xml = new SimpleXMLElement($contents);

foreach( libxml_get_errors() as $error ) {
  echo 'error: ', $error->$message, "<br />\n";
}

печать

0 голосов
/ 25 августа 2009

Обычно в настройках ini это запрещено.

Вы можете попробовать этот метод, чтобы проверить наличие удаленного файла.

if (fopen($url, "r")) {
    echo "File Exists";
} else {
    echo "Can't Connect to File";
}
0 голосов
/ 25 августа 2009

Проверьте, что:

a) параметр для simplexml_import_dom является DOMNode.

b) у вас включен файл allow_url_fopen в вашем php.ini

В качестве альтернативы вы можете попробовать использовать [simplexml_load_file] [3] с URL-адресом и посмотреть, что происходит.

Дополнительные ссылки: php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

php.net / ручной / EN / function.simplexml-нагрузки file.php

0 голосов
/ 25 августа 2009

file_exists () не работает с URL. Это даже не имеет смысла для URL.

simplexml_import_dom () предназначен для преобразования узлов DOM в узлы SimpleXML. Он ожидает экземпляр узла DOM в качестве аргумента. Вместо этого вы передаете URL.

Возможно, вы хотите:

$simplexml = simplexml_load_string(file_get_contents($url));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...