Кажется, это решило проблему.
private void ClearNode(XPathNavigator nodeToClear)
{
if (nodeToClear.HasChildren)
{
nodeToClear.MoveToFirstChild();
do
{
ClearNode(nodeToClear);
} while (nodeToClear.MoveToNext());
nodeToClear.MoveToParent();
}
else
{
nodeToClear.SetValue(string.Empty);
}
}
После этого вы просто вызываете любой узел, который хотите очистить, и передаете его как XPathNavigator, и все, и вы уходите. Это решило все, что я хранил, но мне любопытно, как он справится со сбросом полей со значениями по умолчанию, такими как логическое значение или что-то в этом роде.