
IsFirstNode( XmlNode node ) // 判断一个XmlNode是否为XmlDocument的第一个节点#region IsFirstNode( XmlNode node ) // 判断一个XmlNode是否为XmlDocument的第一个节点
/**//// <summary>
/// 判断一个XmlNode是否为XmlDocument的第一个节点
/// (这里说的第一个节点是指除了<xml version="1.0"></xml>以外的第一个节点)
/// </summary>
/// <param name="node"></param>
/// <returns>
/// 如果是第一个节点,就返回true
/// 如果不是,就返回false
/// </returns>
public static bool IsFirstNode( XmlNode node )
{
XmlNode previous; //上一个节点
previous = null;
previous = node.PreviousSibling;
//如果已经是第一个节点,就不再移动
if( previous == null )
{
return true;
}
//之所以要加这个判断,是因为当每个xml字符串中都有一个<xml version="1.0"></xml>的节点,
//当对第一个节点判断XmlNode.PreviousSibling属性的时候,发现XmlNode.PreviousSibling不等于null,而是<xml version="1.0"></xml>
//所以需要用下面这句话来判断是否达到了第一个节点
//版本:
// v1.0 2005-11-21 发现了这个问题
// v1.1 2005-11-22 发现这个问题只出现于XmlDocument中第一层次的节点,也就是与
// <xml version="1.0"/>同级别的节点,对于其他级别的节点不会出现这个问题,
// 所以应该给下面这段代码加上一个过滤条件
if( IsFirstLevelNode( node ) ) // fanghui Add 2005-11-22 ( for v1.1 ) 
{
if( previous.PreviousSibling == null )
{
return true;
}
} // fanghui Add 2005-11-22 ( for v1.1 ) 
return false;
}
#endregion

IsFirstLevelNode( XmlNode node ) // 判断一个XmlNode是否是第一级别的节点#region IsFirstLevelNode( XmlNode node ) // 判断一个XmlNode是否是第一级别的节点
/**//// <summary>
/// 名 称 : IsFirstLevelNode
/// 概 述 : 判断一个XmlNode是否是第一级别的节点
/// 所谓第一级别的节点,就是XmlDocument中第一层次的节点,也就是与<xml version="1.0"/>同级别的节点
/// 作 者 : fanghui
/// 创建日期 : 2005-11-22
/// 备 注 :
/// 1. 之所以要写这个函数,是因为第一层次的节点在一些处理上与其他级别的节点有所不同,现在已经发现的情况包括:
/// (1). 同级别第一个节点的判别(具体见本文件的IsFirstNode方法)
/// 2. 从目前的情况来看,
/// node.ParentNode.Name == "#document"
/// 这句话就足以判断该XmlNode是第一级别的节点,如果以后出现其他的情况,再完善该函数
/// </summary>
/// <param name="node"></param>
/// <returns></returns>
public static bool IsFirstLevelNode( XmlNode node )
{
//之所以要这样写,是因为虽然移动到了XmlDocument的第一个节点,
//但是此时currentNode.ParentNode仍然不为空,currentNode.ParentNode.Name是#document
if( node.ParentNode.Name == "#document" )
{
return true;
}
return false;
}
#endregion


IsRootNode( XmlNode node ) // 判断一个XmlNode是否是第一级别的节点#region IsRootNode( XmlNode node ) // 判断一个XmlNode是否是第一级别的节点
/**//// <summary>
/// 名 称 : IsFirstLevelNode
/// 概 述 : 判断一个XmlNode是否为一个XmlNode的根节点
/// (这里说的根节点是指除了<xml version="1.0"></xml>以外的根节点)
/// 作 者 : fanghui
/// 创建日期 : 2005-11-22
/// </summary>
/// <param name="node"></param>
/// <returns></returns>
public static bool IsRootNode( XmlNode node )
{
//如果是第一级别的第一个节点,就表明是根节点
if( IsFirstNode( node ) && IsFirstLevelNode( node ) )
{
return true;
}
return false;
}
#endregion
浙公网安备 33010602011771号