下面的php脚本给出了文件夹uploads中单个xml文件的元素计数。但是我在文件夹中有很多xml文件。在下面的脚本中修改什么,以便我得到表格格式的结果,其中包含文件名和文件夹中所有xml文件的元素计数。
<?php
$doc = new DOMDocument;
$xml = simplexml_load_file("uploads/test.xml");
//file to SimpleXMLElement
$xml = simplexml_import_dom($xml);
print("Number of elements: ".$xml->count());
?>
2条答案
按热度按时间vmdwslir1#
首先将XML文件加载到
SimpleXMLElement
中,然后将其导入到DOMElement
中,并在其上调用方法count()
。此方法不存在于DOMElement
中,而只存在于SimpleXMLElement
中。因此,导入是不必要的。您可以使用
GlobIterator
来迭代文件:通过DOM,您可以使用Xpath从XML中获取特定的值。
Xpath表达式
/*
/*/*
的子元素count(/*/*)
*
是任何元素节点的通用选择器。如果可以,您应该更具体地使用实际的元素名称(例如/list/item
)。xxb16uws2#
首先,使用下面的逻辑创建一个
function
:请注意,我:
这就是你如何获得给定路径的文件:
我们得到了除
.
和..
之外的所有文件,这两个文件肯定不是我们感兴趣的。https://www.php.net/manual/en/function.scandir.php成功时您收到了一个文件名数组,因此,让我们循环它并执行所需的逻辑:
编辑
正如@Juan在评论区善意地解释的那样,人们可以使用
而不是
scandir
,这将确保我们不再需要调用array_diff
,以后我们可以避免在循环中使用if
: