private void ReplaceInitialChildText(XmlNode parent, string value)
{
XmlNode n = parent.FirstChild;
// don't consider whitespace when replacing initial text
while (n != null && n.NodeType == XmlNodeType.Whitespace)
n = n.NextSibling;
if (n != null)
{
if (n.NodeType == XmlNodeType.Text)
n.Value = value;
else
n = parent.InsertBefore(CreateTextNode(value), n);
RemoveInitialTextNodes(n.NextSibling);
}
else
{
parent.AppendChild(CreateTextNode(value));
}
}