0

XML ドキュメントを再帰的に処理するときに複合パターンを使用しようとしています。

私がこれまでに持っているコードは

public Composite TraverseNodes (XmlNodeList nodeList, Composite comp)
    {
       foreach(XmlNode in nodelist)
           if(xNode.Attributes != null)
             {
               Object x = getObjects(xNode) // getObjects returns an OO version of each node & their attributes;
               Composite child = new Composite(x);
               if(x != null)
               {
                   comp.Add(child);
                }
                if (xNode.HasChildNodes)
                {
                      TraverseNodes(xNode.ChildNodes, comp);
                 }
             }
        }

これにより、XML ドキュメントが再帰的に処理されます。私の問題は、Composite に XML ドキュメントの構造を反映させたいということです。現時点では、フラット リストしか作成していません。したがって、コンプにはコンプ チャイルド チャイルドがあります

一方、私が達成したいのは、もっと似たものです

    Comp
      Child
         GChild
         GChild
      Child
         GChild
         GChild  
            GGChild ...... and so on.....

このリンクのコードを使用して Composite クラスを構築しています http://www.dofactory.com/Patterns/PatternComposite.aspx#_self2

ご指摘ありがとうございます。リンダ

4

1 に答える 1

0

への再帰呼び出しTraverseNodesは、通過compすべき場所を通過していchildます。

于 2013-01-26T22:15:09.577 に答える