2011-05-30 54 views
1

我虚拟为PHP和XML,所以请耐心等待,如果我的问题似乎愚蠢。如何在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 />"; 
} 
?> 

当我做它返回1,这显然是不元素的数量echo count($names); 。请帮忙。

+0

它输出循环中的节点吗? – 2011-05-30 07:58:43

+0

是的...... – 2011-05-30 08:06:47

回答

1

看看getElementsByTagName的返回值,它将是一个DOMNodeList

也为你的问题,你可以这样做:

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

您不必实际检查的getElementsByTagName的返回值,因为它会永诺是的DOMNodeList。这样你可以直接在foreach循环中使用它,而不需要分配不需要的变量。

你必须检查的是,循环后的大小为$names

+0

谢谢你的工作...... – 2011-05-30 08:10:19