从 InnerHtml 手动创建 HtmlDocument.DocumentNode returns null

Manualy created HtmlDocument.DocumentNode returns null from InnerHtml

尝试从代码手动构建 HTML。代码,构建 html:

            public string ParseFromRoot(RootItem root)
            {
                if (root == null || root.Children.Count == 0)
                    return string.Empty;

                var document = new HtmlDocument();

                foreach (var item in root.Children)
                    ParseNode(document, document.DocumentNode, item);

                return document.DocumentNode.InnerHtml;
            }

         private HtmlNode ParseNode(HtmlDocument document, HtmlNode parentNode, ItemBase item)
        {
            var node = DefineNode(document, item);

            parentNode.ChildNodes.Add(node);

            if (item.Children.Count == 0)
                return node;

            foreach (var child in item.Children)
                ParseNode(document, node, child);

            return node;
        }

在那种情况下,在准备好的文档中,我在尝试访问 document.DocumentNode.InnerHtml 时得到了 Null 引用。但是 InnerText 反映了实际的文本,一切都好吗?

万一我document.LoadHtml("")一样html,document.DocumentNode.InnerHtmlreturns真的html无一例外?

html:

<p>dsgwegsdrgsrdeg</p>
<p>&nbsp;</p>
<p>just <strong>typihere</strong></p>
<p>&nbsp;</p>
<ol>
   <li>some list</li>
   <li>another list</li>
</ol>
<p>j</p>

问题出在这一行:

parentNode.ChildNodes.Add(node);

我们需要将其替换为

parentNode.AppendChild(node);