我正在尝试在递归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有 比较 儿童 儿童 子
而我想要实现的更像是
Comp
Child
GChild
GChild
Child
GChild
GChild
GGChild ...... and so on.....
我正在使用此链接中的代码构建我的Composite类http://www.dofactory.com/Patterns/PatternComposite.aspx#_self2
非常感谢任何指针。 琳达
答案 0 :(得分:0)
您对TraverseNodes
的递归调用正在通过comp
传递child
。