1

問題の背景:

たくさんのディレクトリ、ファイル、添付ファイル、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を使用することを計画していましたが、ファイルを処理するために必ずしもそれを使用する必要はありません。

4

1 に答える 1

1

私は間違っているかもしれませんが、そうではありません:

<Structure nodeid="EFCCA56742074A2A859FD1C547850ABA" ParentID = "A6F7E2F0728147BB88429545A6C490CA">

Structure の nodeId とそれに対応する親を教えてください。EFCCA56742074A2A859FD1C547850ABAの子であることがわかりますA6F7E2F0728147BB88429545A6C490CAか?

RDBMS には階層の概念がないため、ツリー データ構造を RDBMS に格納するのは長い話ですが、このようなタスクを実行できるさまざまなモデルがあります。http://www.slideshare.net/quipo/trees-in-the-database-advanced-data-structuresを確認して開始できます。

隣接リストはおそらく最も簡単な方法ですが、再帰クエリがないため、mySQL を使用する場合は、最後のノードに到達するか、ツリーを処理するために多くの結合を行う必要があります。アプリケーション層。

于 2012-02-09T09:32:14.363 に答える