2016-02-12 78 views
1

我该如何计算所有XML元素?我想查找使用<product>标签的次数。例如:计算XML标记

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

我知道有一个叫做count的simplexml函数,但我不完全确定这将如何工作。如果有人可以花时间发布例子并解释计数函数,我将不胜感激。先谢谢你。

+0

'$ XML->产品 - >计数();' – michi

回答

0

这是想到的一种方式。

// 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; 
+0

怎么样在simplexml的? – McStuffins

+0

您可以执行'$ productCount = $ xpath-> evaluate(“count(/ root/products)”);'并直接获取该值。这与SimpleXML不兼容。 – ThW

2

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

例如:

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

$xml = simplexml_load_string($source); 

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

会导致:

+0

加载文件如何?我可以使用'simplexml_load_file'? – McStuffins

+0

是的,您可以使用[simplexml_load_file](http://php.net/manual/en/function.simplexml-load-file.php),例如'$ xml = simplexml_load_file('test.xml');' –

+0

好吧。谢谢。我很感激。 – McStuffins