Page 1 sur 1

Lecture du contenu d'une div pouvant contenir des div

Posté : 11 juil. 2011, 17:25
par Bosyphe
Bonjour,

Voici le sujet qui me préoccupe en ce moment :

J'ai besoin d'extraire un paragraphe de classe "Legend" placé éventuellement dans une div de classe "Figure".
Une div "Figure" peut elle-même contenir différentes div (par exemple une div "Note"), dont des div "Figure_i" (figures partielles) qui peuvent aussi contenir un paragraphe "Legend".

Une structure possible peut donc être :

<div class="Figure">
[...]

xxx<div class="Figure_i>
xxx[...]
xxx<p class="Legend"> légende de la figure (a) </p>
xxx</div>

xxx<div class="Figure_i>
xxx[...]
xxx<p class="Legend"> légende de la figure (b) </p>
xxx</div>

xxx<div class="Figure_i>
xxx[...]
xxx<p class="Legend"> légende de la figure (c) </p>
xxx</div>

xxx<div class="Note">
xxx[...]
xxx</div>

<p class="Legend"> légende de l'ensemble</p>

J'ai besoin

1) de pouvoir lire l'ensemble de la div "Figure" sans que ma regex s'arrête à la première balise fermante </div>

2) de pouvoir extraire la légende associée à la div "Figure" en laissant de côté les légendes associées aux petites figures (a), (b), (c)...

Merci grandement par avance pour vos suggestions

Re: Lecture du contenu d'une div pouvant contenir des div

Posté : 11 juil. 2011, 23:10
par devlop78

Re: Lecture du contenu d'une div pouvant contenir des div

Posté : 12 juil. 2011, 00:08
par Bosyphe
Merci de ta réponse "condensée" :wink:

A priori, j'ai encore beaucoup, beaucoup à apprendre !

Pour l'instant, j'ai simplifié le problème en créant une classe Figure_i pour les figures contenues dans un bloc Figure et une classe Legend_i pour les légendes de ces figures.
Comme cela j'accède directement aux légendes principales et aux légendes secondaires.

Re: Lecture du contenu d'une div pouvant contenir des div

Posté : 12 juil. 2011, 03:47
par devlop78
Ce n'est qu'une suggestion, au fait. Tu peux aussi passer par les expressions régulières. DOMDocument a l'avantage d'être natif et de parser complètement ton code, ce qui te permet de vraiment agir dessus (lire ce que tu veux, modifier ce que tu veux). Il existe aussi des librairies qui mâchent le travail à la façon jQuery.