我试图在通过 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 Child Child
而我想要实现的是更像
Comp
Child
GChild
GChild
Child
GChild
GChild
GGChild ...... and so on.....
我正在使用此链接中的代码来构建我的 Composite 类http://www.dofactory.com/Patterns/PatternComposite.aspx#_self2
非常感谢您的任何指点。琳达