【问题标题】:How to index XML elements in PHP?如何在 PHP 中索引 XML 元素?
【发布时间】:2011-05-30 07:55:10
【问题描述】:

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

【问题讨论】:

  • 是否输出循环中的节点?

标签: php xml dom


【解决方案1】:

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

对于您的问题,您还可以执行以下操作:

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

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

你要检查的是循环后$names的大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-03
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2012-05-19
    • 1970-01-01
    相关资源
    最近更新 更多