根本原因是标准DOM Level 3无法在不违反规范的情况下将Text节点表示为document的子级。任何兼容的解析器都将删除空格。
document -- Element (maximum of one), ProcessingInstruction, Comment, documentType (maximum of one)
如果您需要一个符合标准的解决方案,并且目标是可读性而不是100%复制,那么我会在您的输出机制中寻找它。

根本原因是标准DOM Level 3无法在不违反规范的情况下将Text节点表示为document的子级。任何兼容的解析器都将删除空格。
document -- Element (maximum of one), ProcessingInstruction, Comment, documentType (maximum of one)
如果您需要一个符合标准的解决方案,并且目标是可读性而不是100%复制,那么我会在您的输出机制中寻找它。