private XPathNodeType DecideXPNodeTypeForTextNodes(XmlNode node)
{
//the function can only be called on text like nodes.
Debug.Assert(XmlDataDocument.IsTextNode(node.NodeType));
XPathNodeType xnt = XPathNodeType.Whitespace;
while (node != null)
{
switch (node.NodeType)
{
case XmlNodeType.Whitespace:
break;
case XmlNodeType.SignificantWhitespace:
xnt = XPathNodeType.SignificantWhitespace;
break;
case XmlNodeType.Text:
case XmlNodeType.CDATA:
return XPathNodeType.Text;
default:
return xnt;
}
node = _doc.SafeNextSibling(node);
}
return xnt;
}