Php count tags in XML

108 Views Asked by At

I am looking for how to count tags in an XML file.

This is my xml file:

<?xml version="1.0" encoding="utf-8" ?>
    <contenu>
        <images>
            <image>1.jpg</image>
            <image>aid.jpg</image>
            <image>298jd.jpg</image>
        </images>
    </contenu>
    <contenu>
        <images>
            <image>112.jpg</image>
            <image>ai2d.jpg</image>
            <image>29228jd.jpg</image>
            <image>29zz8jd.jpg</image>
        </images>
    </contenu>
    <contenu>
        <images>
            <image>12.jpg</image>
        </images>
    </contenu>

I would view this :

images[0]=> 3 tags <image>
images[1]=> 4 tags <image>
images[2]=> 1 tags <image>

But I can not get anything.

Can you help me

Thank you in advance for your help

1

There are 1 best solutions below

0
On

The XML that you have provided is invalid. I have included a root_tag.

<?xml version='1.0' encoding='UTF-8' ?>
<root_tag>
    <contenu>
        <images>
            <image>1.jpg</image>
            <image>aid.jpg</image>
            <image>298jd.jpg</image>
        </images>
    </contenu>
    <contenu>
        <images>
            <image>112.jpg</image>
            <image>ai2d.jpg</image>
            <image>29228jd.jpg</image>
            <image>29zz8jd.jpg</image>
        </images>
    </contenu>
    <contenu>
        <images>
            <image>12.jpg</image>
        </images>
    </contenu>
</root_tag>

You could use this PHP script to get the output

<?php
    $xml=simplexml_load_file("test.xml");

    $var = $xml->contenu;
    $i = 0;
    foreach ($var as $value) {
        echo 'images['.$i.'] '.count($value->images->image).' tags &lt;'.$value->images->image->getName().'&gt;<br/>';
        $i++;
    }
?>