Как индексировать XML-элементы в PHP?

Я фиктивный для PHP и XML, поэтому, пожалуйста, будьте терпеливы, если мой вопрос кажется немым.

Я хочу знать, как индексировать элементы XML, чтобы я мог получить к ним доступ. Я планирую положить их в массив. Однако я не знаю, как получить количество возвращаемых элементов.

Вот коды:

exer.xml

 <?xml version="1.0" encoding="ISO-8859-1"?> <actionstars> <name>Jean Claude Van Damme</name> <name>Scott Adkins</name> <name>Michael Jai White</name> <name>Dolph Lundgren</name> <name>Tom Cruise</name> <name>Michael Worth</name> </actionstars> 

index.php

 <?php $dom = new DomDocument(); $dom->load("exer.xml"); $names = $dom->getElementsByTagName("name"); echo count($names); foreach($names as $name) { print $name->textContent . "<br />"; } ?> 

Когда я делаю счет echo count($names); он возвращает 1 , что, очевидно, не является числом элементов. Пожалуйста помоги.

Solutions Collecting From Web of "Как индексировать XML-элементы в PHP?"

Посмотрите на возвращаемое значение getElementsByTagName , которое будет DOMNodeList .

Также для вашей проблемы вы можете сделать что-то вроде:

 $names = array(); foreach ($dom->getElementsByTagName("name") as $nameNode) { $names[] = $nameNode->nodeValue; } 

Вам не нужно проверять возвращаемое значение getElementsByTagName , поскольку оно всегда будет DOMNodeList. Таким образом, вы можете использовать его непосредственно в foreach-loop, не присваивая ненужные переменные.

То, что вам нужно проверить, – это размер $names после цикла.