2016-02-12 76 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