Bonjour à tous,
Je dois pour un projet faire du XML et j'avoue que je sèche sur un problème assez simple...
Si un enfant ne contient pas une certaines valeur, alors je dois supprimer le parent.
Un bout de code parlera surement beaucoup plus....
Soit mon fichier XML suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
<?xml version="1.0"?>
<Personnes>
    <Personne>
        <ID>1</ID>
        <Name>prenom 1</Name>
        <ActivityDomain>
            <ActivityDomainName>medecin</ActivityDomainName>
        </ActivityDomain>
    </Personne>
    <Personne>
        <ID>2</ID>
        <Name>prenom 2R</Name>
        <ActivityDomain>
            <ActivityDomainName>charcutier</ActivityDomainName>
        </ActivityDomain>
    </Personne>
    <Personne>
        <ID>3</ID>
        <Name>prenom 3</Name>
        <ActivityDomain>
            <ActivityDomainName>plombier</ActivityDomainName>
        </ActivityDomain>
        <ActivityDomain>
            <ActivityDomainName>Chauffagiste</ActivityDomainName>
        </ActivityDomain>
    </Personne>
</Personnes>
Je souhaite éliminer toutes les personnes qui ne sont pas chauffagiste...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
                $Personne = $dom->getElementsByTagName("Personne");               
                foreach($Personne as $cli) {
//                echo '<textarea>'.$cli->nodeValue.'</textarea>';exit;
                    $listeActivity = $cli->getElementsByTagName('ActivityDomainName');
                    //Pour l'instant, le client n'a pas d'activité export....
                    $auneactivitechauf = 0;
                    foreach($listeActivity as $act) {
 
                        if(stristr($act->nodeValue, 'chauffa') == TRUE) {
                            $auneactivitechauf++;
                        }
                        if ($auneactivitechauf == 0) {
                           $Personne->parentNode->removeChild($act->nodeValue);
                        }
                    }
                }
Le souci vient du fait que je ne parvient pas a supprimer les racines personnes qui ne contienne pas comme activité chauffagiste...

C'est bien à la fin le souci mais je vois pas comment faire
Si quelqu'un à une idée...
D'avance merci !