Si vous pouvez aider avec ceci, vous êtes un génie.Analyse SGML et stockage dans un tableau PHP
Fondamentalement, je vais avoir un texte comme celui-ci:
<parent wealthy>
<parent>
<children female>
<child>
jessica
<hobbies>
basketball, soccer, video games
</hobbies>
</child>
<child>
jane
<hobbies>
cooking, shopping, boys
</hobbies>
</child>
</children female>
<children male>
<child>
josh
<hobbies>
tennis, swimming
</hobbies>
</child>
</children male>
</parent>
</parent wealthy>
<parent poor>
<parent>
<children male>
<child>
---
<hobbies>...</hobbies>
</child>
</children male>
</parent>
</parent poor>
Donc, en tout, je vais avoir une hiérarchie parent-enfant comme celui-ci:
- parent wealthy/ parent poor /parent something else
-- parent
-- children male/ children female/children something else
-- child
-- (name of the child is given without any tags around it)
-- hobbies
Je me demande comment je peux peut-être analyser toutes ces informations et les avoir stockés dans un tableau php/objet/variable tout en maintenant l'ordre dans lequel ils apparaissent? Par exemple, si <parent wealthy>
apparaît au-dessus de <parent poor>
, je voudrais les garder dans le même ordre, et la même chose se passe si <children male>
apparaît avant <children female>
. Ce serait presque tout à fait valide XML et je pourrais utiliser SimpleXML pour l'analyser, mais le problème est que le nom de l'enfant n'apparaît pas entre les balises et le client veut le garder ainsi pour la convivialité. par exemple:
<child>
jane
<hobbies>
cooking, shopping, boys
</hobbies>
</child>
Voici jane "apparaît en dehors des balises, et <hobbies>
apparaissent entre certaines balises.
Comment cela peut-il être analysé? S'il vous plaît donner quelques conseils. Si vous suggérez d'utiliser des expressions rationnelles, veuillez donner les expressions rationnelles qui peuvent être utilisées pour que votre réponse soit acceptée, car je ne connais pas les expressions rationnelles.
Merci. Éditer: Le problème principal est que le client veut mélanger le texte normal avec le texte dans les étiquettes. Par exemple:
text text test <hobbies>...<hobbies>. text text text <age>30</age>
Comment cela peut-il être analysé?
Je ne pense pas que le jane en dehors d'un tag serait un problème car c'est juste le contenu de l'étiquette. le problème serait cela peut-il être changé en ou –
Josh
Eh bien, c'est un fichier XML et vous devriez rester à l'écart de l'expression régulière pour le lire. –
Veuillez essayer et créer un titre plus descriptif pour une question. –