如何在PHP中索引XML元素?

时间:2011-05-30 07:55:11

标签: php xml dom

我对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,这显然不是元素的数量。请帮忙。

1 个答案:

答案 0 :(得分:1)

查看getElementsByTagName的返回值,该值为DOMNodeList

同样针对您的问题,您可以执行以下操作:

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

您不必实际检查getElementsByTagName的返回值,因为它总是一个DOMNodeList。通过这种方式,您可以直接在foreach循环中使用它,而无需分配不需要的变量。

在循环之后,您需要检查的是$names的大小。