Как разобрать или загрузить большой XML-файл на PHP? ⇐ Php
-
Anonymous
Как разобрать или загрузить большой XML-файл на PHP?
Я хочу проанализировать или загрузить XML-файл. Файл представляет собой XML-канал.
Я пытался разобрать файл следующим образом:
$this->url = 'https://example.com/feed.xml'; $reader = XMLReader::open($this->url); while ($reader->read()) { if ($reader->nodeType == XMLREADER::ELEMENT) { // Получаем значение первого атрибута $value = $reader->getAttributeNo(0); // Выводим значение в браузер эхо $значение. "
"; } } Но ничего не происходит. Выходных данных нет.
Я тоже пробовал вот так:
$document = новый DOMDocument(); $xpath = новый DOMXpath($document); // ищем первый узел элемента "item" пока ( $reader->read() && $reader->localName !== 'item' ) { продолжать; } while ($reader->localName === 'item') { $domItem = $reader->expand($document); эхо "\nId: " . $xpath->evaluate('string(g:id)', $domItem); } Но вывода тоже нет. Интересно, правильно ли это? XMLReader должен читать XML-файл построчно, не так ли?
Затем я попытался загрузить XML-файл:
if (file_put_contents('./feed.xml', file_get_contents(self::PROD_URL))) { echo «Файл успешно загружен»; } еще { echo "Не удалось загрузить файл."; } Но там написано: «Не удалось загрузить файл». XML-файл выглядит следующим образом. У него много. Я хочу получить все элементы с их узлами.
Мой канал Откройте для себя невероятное... https://example.com де-DE https://example.com/media/logo.png example.com https://example.com 12345 Товар 1 Подробное описание 1 123456 Продукт 2 Подробное описание 2 ... Какой путь?
Я хочу проанализировать или загрузить XML-файл. Файл представляет собой XML-канал.
Я пытался разобрать файл следующим образом:
$this->url = 'https://example.com/feed.xml'; $reader = XMLReader::open($this->url); while ($reader->read()) { if ($reader->nodeType == XMLREADER::ELEMENT) { // Получаем значение первого атрибута $value = $reader->getAttributeNo(0); // Выводим значение в браузер эхо $значение. "
"; } } Но ничего не происходит. Выходных данных нет.
Я тоже пробовал вот так:
$document = новый DOMDocument(); $xpath = новый DOMXpath($document); // ищем первый узел элемента "item" пока ( $reader->read() && $reader->localName !== 'item' ) { продолжать; } while ($reader->localName === 'item') { $domItem = $reader->expand($document); эхо "\nId: " . $xpath->evaluate('string(g:id)', $domItem); } Но вывода тоже нет. Интересно, правильно ли это? XMLReader должен читать XML-файл построчно, не так ли?
Затем я попытался загрузить XML-файл:
if (file_put_contents('./feed.xml', file_get_contents(self::PROD_URL))) { echo «Файл успешно загружен»; } еще { echo "Не удалось загрузить файл."; } Но там написано: «Не удалось загрузить файл». XML-файл выглядит следующим образом. У него много. Я хочу получить все элементы с их узлами.
Мой канал Откройте для себя невероятное... https://example.com де-DE https://example.com/media/logo.png example.com https://example.com 12345 Товар 1 Подробное описание 1 123456 Продукт 2 Подробное описание 2 ... Какой путь?
Мобильная версия