Если вы можете помочь в этом, вы гений.Анализ SGML и сохранение его в массиве PHP
В принципе, у меня будет какой-то текст, как это:
<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>
Здесь появляется «джейн» вне всяких тегов и <hobbies>
появляются между некоторыми тегами.
Как это можно разобрать? Пожалуйста, дайте несколько советов. Если вы предлагаете использовать регулярные выражения, пожалуйста, дайте регулярные выражения, которые можно использовать для ответа, чтобы принять их, поскольку я не знаю регулярных выражений.
Спасибо.
Редактировать: Основная проблема заключается в том, что клиент хочет смешивать обычный текст с текстом в тегах. Например:
text text test <hobbies>...<hobbies>. text text text <age>30</age>
Как это можно разобрать?
Я не думаю, что jane вне тега будет проблемой, поскольку это всего лишь содержимое тега. проблема была бы может быть изменена на или –
Josh
Ну, это файл XML, и вы должны держаться подальше от обычного выражения, чтобы прочитать его. –
Пожалуйста, попробуйте создать более описательное название вопроса. –