Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算XML标记_Php_Xml_Count - Fatal编程技术网

Php 计算XML标记

Php 计算XML标记,php,xml,count,Php,Xml,Count,我如何计算所有XML元素?我想知道标记被使用了多少次。例如: <root> <product> </product> <product> </product> <product> </product> </root> 我知道有一个名为count的simplexml函数,但我不确定它将如何工作。如果有人能花时间发布一个示例并解释计数函数,我将不胜感激。提前谢谢

我如何计算所有XML元素?我想知道
标记被使用了多少次。例如:

<root>
   <product>
   </product>
   <product>
   </product>
   <product> 
   </product>
</root>


我知道有一个名为count的simplexml函数,但我不确定它将如何工作。如果有人能花时间发布一个示例并解释计数函数,我将不胜感激。提前谢谢你。

这是我想到的一种方法

// Get content
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
@$dom->loadHTML($html);

// grab all
$xpath = new DOMXPath($dom);
$root = $xpath->evaluate("/root/products");
echo $root->length;

作为替代方案,您也可以使用

例如:

$source = <<<SOURCE
<root>
   <product>
   </product>
   <product>
   </product>
   <product>
   </product>
</root>
SOURCE;

$xml = simplexml_load_string($source);

$elements = $xml->xpath('/root/product');
echo count($elements);

$source=在simplexml中如何?您可以执行
$productCount=$xpath->evaluate(“count(/root/products)”)
并直接获取值。这在SimpleXML中是不可能的。加载一个文件怎么样?我可以只使用
simplexml\u load\u文件
?是的,您可以使用,例如
$xml=simplexml\u load\u文件('test.xml')
$xml->product->count()