Я хотел бы получить значения тега в xml
в array
по php
. Я использовал этот фрагмент:Получение списка значений тега из xml-файла
$images = parseXmlFileForTagName("Rambod_catalog.xml", "Thumbnail");
$prices = parseXmlFileForTagName("Rambod_catalog.xml", "Retail_Price");
echo $images[0], " ", $prices[0];
/**
* @param string $xmlFile
* @param string $tagName
*
* @throws InvalidArgumentException
* @return DOMNodeList
*/
function parseXmlFileForTagName($xmlFile, $tagName)
{
$doc = new DomDocument;
$r = $doc->load($xmlFile);
if (!$r) {
throw new InvalidArgumentException(sprintf('Failed to load file %s', $xmlFile));
}
return $doc->getElementsByTagName($tagName);
}
, но появляется сообщение об ошибке:
Fatal error: Cannot use object of type DOMNodeList as array in /path/to/index.php on line 400
Почему является причиной этой ошибки? Как я могу изменить свой код, чтобы исправить его?
Вы получаете доступ к DOMNodeList как массив, который невозможен, он использует различную нотацию для доступа к значениям списка. Как описано в руководстве по php: http://php.net/domdocument.getelementsbytagname - вам необходимо изменить свой код, чтобы исправить его, но он действительно слишком локализован для ответа IMHO. – hakre
Также не дублируйте свои вопросы: http://stackoverflow.com/questions/17037936/converting-xml-to-array-in-php – hakre