private string GetInitialTextFromNodes(ref XmlNode n)
{
string value = null;
if (n != null)
{
// don't consider whitespace
while (n.NodeType == XmlNodeType.Whitespace)
n = n.NextSibling;
if (IsTextLikeNode(n.NodeType) && (n.NextSibling == null || !IsTextLikeNode(n.NodeType)))
{
// don't use string builder if only one text node exists
value = n.Value;
n = n.NextSibling;
}
else
{
StringBuilder sb = new StringBuilder();
while (n != null && IsTextLikeNode(n.NodeType))
{
sb.Append(n.Value);
n = n.NextSibling;
}
value = sb.ToString();
}
}
if (value == null)
value = string.Empty;
return value;
}