获取PHP中的XML节点数

时间:2018-02-07 14:40:18

标签: php xml

我正在阅读XML文件结构:

XML:

<?xml version="1.0" encoding="utf-8" ?>
 <datafiles>
   <datafile>aida_rtd_call1.xml</datafile> 
   <datafile>aida_rtd_callback.xml</datafile>        
 </datafiles>

我希望能够遍历每个datafile元素,获取值并将其传递给方法。以下是我到目前为止的情况:

PHP:

$xml=simplexml_load_file("conf/DataFiles.xml"); 

//TODO: Count how many items 
$count = 0;

for ($x = 0; $x <= $count; $x++) {
    $xmlItem=$xml->datafile[$x];
    $fileName = "xml/";
    $fileName .= $xmlItem;
    prepareFile($fileName);     
    } 

我正在努力弄清楚如何计算数据文件的数量。使用我的XML文件结构,我需要它来计算两个数据文件并在for循环中使用它们。任何想法如何做到这一点?

我是PHP的新手,所以这可能不是最好的方法。

2 个答案:

答案 0 :(得分:1)

只需使用PHP的本机count函数即可获得SimpleXML子节点的数量:

echo count($xml->datafile);
// 2

在这种情况下,不是使用for循环和计数,而是使用foreach循环更有意义:

foreach ($xml->datafile as $xmlItem) {
  $fileName = "xml/";
  $fileName .= $xmlItem;
  ...
}

有关快速示例,请参阅https://eval.in/951668

答案 1 :(得分:0)

$xml->children()->datafile->count()

但正如评论中所建议的那样:

foreach ($xml->children()->datafile as $element) {
    var_dump($element);
}

更有意义