php DOM, получить значения из документа xml, php xml

Я пытаюсь получить некоторую информацию (itemID, title, price и mileage) для нескольких списков с веб-сайта eBay, используя их API. На данный момент я получил это вверх

Я сохранил документ как файл .xml с помощью PHP cUrl, и теперь мне нужно получить/извлечь значения (itemID, title, price и mileage) в массивы и сохранить их в базе данных.

К сожалению, я никогда не работал с PHP DOM и не могу понять, как извлечь значения. Я пытался следовать руководству, найденному на веб-сайте IBM, но безуспешно. . Некоторая помощь будет высоко оценена.


person Michael    schedule 17.06.2010    source источник
comment
simplexml — самый простой способ извлечения XML-данных в PHP: php.net/simplexml_load_file   -  person Pekka    schedule 17.06.2010
comment
‹pre› $doc = новый DOMDocument(); $doc-›загрузить('api.xml'); $items = $doc->getElementsByTagName(GetMultipleItemsResponse); foreach($GetMultipleItemsResponse as $Item) { $itemID = $Item->getElementsByTagName(ItemID); $itemID = $Item-›item(0)-›nodeValue; } эхо $itemID; ‹/пред›   -  person Michael    schedule 17.06.2010
comment
это должен быть ответ, а не комментарий.   -  person Sjoerd    schedule 17.06.2010


Ответы (1)


Вот пример кода для получения ItemID из вашего XML-файла:

<?php
$doc = new DomDocument();
$doc->load('a.xml');
$response = $doc->getElementsByTagName('GetMultipleItemsResponse')->item(0);
$items = $doc->getElementsByTagName('Item');
foreach ($items as $item)
{
    $itemID = $item->getElementsByTagName('ItemID')->item(0)->nodeValue;
    echo $itemID."\n";
}
?>
  • $doc->getElementsByTagName() возвращает DomNodeList. Его можно использовать в цикле foreach, и он имеет метод item().
  • DomNodeList будет содержать все соответствующие элементы. Если вы знаете, что есть только один элемент, вы можете получить его с помощью ->item(0)
  • Метод item() возвращает DomElement, который наследуется от DomNode. DomNode имеет свойство nodeValue, которое содержит текст внутри элемента.

Обзор: используйте SimpleXML

person Sjoerd    schedule 17.06.2010