Если вы можете помочь с этим, вы гений.
По сути, у меня будет такой текст:
<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>
Итак, у меня будет иерархия родитель-потомок, подобная этой:
- 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
Мне интересно, как я могу разобрать всю эту информацию и сохранить ее в массиве / объекте / переменной php, сохраняя порядок, в котором они появляются? Например, если <parent wealthy>
появляется выше <parent poor>
, я бы хотел сохранить их в том же порядке, и то же самое происходит, если <children male>
появляется до <children female>
.
Это был бы почти совершенно правильный XML, и я мог бы использовать SimpleXML для его анализа, однако проблема в том, что имя потомка не появляется между тегами, и клиент хочет сохранить его таким, чтобы он был удобен для пользователя. например:
<child>
jane
<hobbies>
cooking, shopping, boys
</hobbies>
</child>
Здесь 'jane' появляется вне любых тегов, а <hobbies>
появляется между некоторыми тегами.
Как это можно проанализировать? Пожалуйста, дайте несколько советов. Если вы предлагаете использовать регулярные выражения, пожалуйста, укажите регулярные выражения, которые можно использовать для принятия вашего ответа, поскольку я не знаю регулярных выражений.
Спасибо.
Редактировать: Основная проблема заключается в том, что клиент хочет смешать обычный текст с текстом в тегах. Например:
text text test <hobbies>...<hobbies>. text text text <age>30</age>
Как это можно разобрать?