如果你能帮上忙,那你就是个天才。
基本上,我会有一些这样的文字:
<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>
那怎么解析呢?