C#中HTML DOM节点树结构仿真中的逻辑错误

时间:2018-07-29 00:16:27

标签: c# dom logic nullreferenceexception

我正在尝试使用列表在C#中模拟HTML DOM节点树的行为,并且在尝试获取节点的同级时遇到麻烦。
Document类(位于树的顶部)从Node类继承。

  

获取下一个同胞的方法

if((Parent.HasChildNodes() && Parent.Children.Length > 1) &&
        Parent._children.IndexOf(this) < Parent.Children.Length - 1)
{
    return Parent.Children[Parent._children.IndexOf(this) + 1];
}
else
{
    return null;
}
  

追加新孩子的方法

public Node AppendChild(Node node)
{
    _children.Add(node);
    SetChild(node);

    node.Parent = this;
    node.IsConnected = true;

    return node;
}

糟糕。 1: _children 字段是private List<Node>
糟糕。 2: Children 属性是public Node[],获取者:return _children.ToArray();
糟糕。 3: HasChildNodes 方法:public bool HasChildNodes() { return Children.Length; }

问题: 我通过创建1个Document对象和2个Node对象并将这些节点追加到文档中进行了一个简单的实验,当我请求第一个节点的下一个同级节点时,它返回null,可以得到任何帮助。

0 个答案:

没有答案