【更新内容】
1、新增Remove函数移除指定的子结点,与Delete的区别在于Remove并不会释放子结点,而只是将其从父结点中移除而已。
/// <summary>移除指定索引的结点</summary> /// <param name="AIndex">要移除的结点索引</param> /// <returns>返回被移除的结点</returns> /// <remarks> /// 1、如果指定索引的结点不存在,则抛出EOutRange异常 /// 2、被移除的结点需要用户自行释放 /// </remarks> function Remove(AIndex: Integer): TQXMLNode; overload; virtual; /// <summary>移除指定的子结点</summary> /// <param name="AIndex">要移除的结点</param> procedure Remove(ANode: TQXMLNode); overload;
2、新增Detach函数将自己从父结点中移除自身,相当于调用Parent.Remove(Self)
/// <summary>从当前XML父结点中分离当前结点</summary> /// <remarks>分离后的结点需要单独释放</remarks> procedure Detach;
3、新增AttachTo函数用于将自己做为最后一个子结点附加到指定的父结点,注意父结点的类型必需为xntNode
/// <summary>将当前结点附加到新的父结点上</summary> /// <param name="AParent">要附加的目标结点</param> /// <remarks>附加后的结点由父结点负责释放</remarks> procedure AttachTo(AParent: TQXMLNode);
4、新增MoveTo函数将自己移动到指定的父结点下的指定位置,注意父结点的类型必需为xntNode
/// <summary>将当前结点移动的新的父结点的指定位置</summary> /// <param name="ANewParent">新的父结点</param> /// <param name="AIndex">新位置索引</param> /// <remarks>如果新位置索引小于等于0,则插入到起始位置,如果大于父的已有结点数量,则插入到 /// 父结点末尾,否则添加到指定位置</remarks> procedure MoveTo(ANewParent: TQXMLNode; AIndex: Integer);
【更新级别】
建议更新
【特别感谢】
新心晨曦 提出需求建议