我该如何计算所有XML元素?我想查找使用<product>
标签的次数。例如:计算XML标记
<root>
<product>
</product>
<product>
</product>
<product>
</product>
</root>
我知道有一个叫做count的simplexml函数,但我不完全确定这将如何工作。如果有人可以花时间发布例子并解释计数函数,我将不胜感激。先谢谢你。
我该如何计算所有XML元素?我想查找使用<product>
标签的次数。例如:计算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;
怎么样在simplexml的? – McStuffins
您可以执行'$ productCount = $ xpath-> evaluate(“count(/ root/products)”);'并直接获取该值。这与SimpleXML不兼容。 – ThW
作为替代方案,你也可以使用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);
会导致:
加载文件如何?我可以使用'simplexml_load_file'? – McStuffins
是的,您可以使用[simplexml_load_file](http://php.net/manual/en/function.simplexml-load-file.php),例如'$ xml = simplexml_load_file('test.xml');' –
好吧。谢谢。我很感激。 – McStuffins
'$ XML->产品 - >计数();' – michi