問題の背景:
たくさんのディレクトリ、ファイル、添付ファイル、JavaScriptを含むフォルダがあります。ActiveXによって処理され、ネストされたテーブルの後にネストされたテーブルで構成される「JSツリー」タイプの構造を生成するメインコアファイルがあります。要するに、それはひどいです。
私が直面している問題は、データベースにロードして、関連するコンテンツに状態を適用できるようにすることです。
XMLファイルの解析は私にとって必ずしも問題ではありませんが、構造が正しく流れるようにすることは問題です。ファイルは、データベース/ファイルシステムに構造を簡単に作成するのに役立つ論理的な方法でネストされていません。XMLファイルは、Structure
そのノードとファイルシステム内の関連コンテンツに関する情報を少し含むノードで構成されています。
それをMPTTタイプの構造にロードすることを考えていましたが、さまざまなノードを論理的に解析して、子/親の関係で構成されるものにすることが、私がつまずいているところです。以下は、このXMLファイルのサンプルです。
<Structure nodeid="9D565FD65DE9464EA36F005866DBF3AE" ParentID = "6EEB45ED97634C9BB2730D7713255673" IsAddOnNode="True" IsCoreNode = "0" >
<Name>POS specific remarks</Name>
<Sequence>1</Sequence>
<WBS>1.1.3.1</WBS>
<BackgroundColor>#80FF00</BackgroundColor>
<FontColor>Black</FontColor>
<Comments></Comments>
<References></References>
</Structure>
<Structure nodeid="A6F7E2F0728147BB88429545A6C490CA" ParentID = "B17AB99B64664624AAA41E220A9EAE59" IsAddOnNode="False" IsCoreNode = "0" >
<Name>Execution, Monitoring, and Controlling of Results</Name>
<Sequence>4</Sequence>
<WBS>1.1.4</WBS>
<BackgroundColor></BackgroundColor>
<FontColor>White</FontColor>
<Comments>
<Comment AddOnID = "53539AB26B50472CAA2DF4E428605C87" Version="0.2"></Comment>
</Comments>
<References></References>
</Structure>
<Structure nodeid="EFCCA56742074A2A859FD1C547850ABA" ParentID = "A6F7E2F0728147BB88429545A6C490CA" IsAddOnNode="False" IsCoreNode = "0" >
<Name>Project Performance Reports</Name>
<Sequence>1</Sequence>
<WBS>1.1.4.1</WBS>
<BackgroundColor></BackgroundColor>
<FontColor>White</FontColor>
<Comments></Comments>
<References></References>
</Structure>
ActiveXで解析されると、構造(左側のナビゲーションペイン)は標準のアウトラインまたは順序付きリストのように配置されます。
1. Project Preparation
1.1 Project Management
1.1.1 Phase Star-Up
1.1.1.1 Item 1
1.1.1.2 Item 2
1.1.1.3 Item 3
などなど。私の理解の限りでは、セクションまたはサブセクション(1.1.1.2)を示すこれらの値は、ノードのWBS
タグに格納されます。Structure
私がしなければならないのは、それらを解析し、それに応じた構造を作成することだと思います。それを行う方法は私が困惑しているところです。
また、Sequence
親要素から離れているインデックスの子要素に関する情報を格納するためにsemするノードもあります。
私がしたいこと
私がやりたいのは、データベースエントリの束を作成して(できればMPTTで)、ナビゲーションツリーを簡単に生成できるようにします。次に、個々のファイルをすべて「スクレイピング」して、それらのコンテンツをデータベースも。どういうわけか、テーブル内に「インデックス」を作成するためにWBSノード値を解析する必要があります。
私は、解決策が私が予想しているよりも単純であることを望んでいます。提案、正しい方向の製品をいただければ幸いです。
これを管理するためにCakePHP内でTreeBehaviorを使用することを計画していましたが、ファイルを処理するために必ずしもそれを使用する必要はありません。