これを手伝うことができれば、あなたは天才です。
基本的に、次のようなテキストがあります。
<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>
それはどのように解析できますか?