我对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
,这显然不是元素的数量。请帮忙。
答案 0 :(得分:1)
查看getElementsByTagName
的返回值,该值为DOMNodeList。
同样针对您的问题,您可以执行以下操作:
$names = array();
foreach ($dom->getElementsByTagName("name") as $nameNode) {
$names[] = $nameNode->nodeValue;
}
您不必实际检查getElementsByTagName
的返回值,因为它总是一个DOMNodeList。通过这种方式,您可以直接在foreach循环中使用它,而无需分配不需要的变量。
在循环之后,您需要检查的是$names
的大小。