You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XDocument加载XML时PreserveWhitespace无效无法保留空格换行问题咨询

XDocument加载XML无法完全保留空格换行的解决方法

仅设置加载时的LoadOptions.PreserveWhitespace是不够的,必须加载和保存环节的参数配套设置才能完整保留原始空白格式。

  • 加载环节正确配置
    加载文件或XML字符串时,明确传入LoadOptions.PreserveWhitespace参数:
// 从本地文件加载
XDocument xmlDoc = XDocument.Load("test.xml", LoadOptions.PreserveWhitespace);
// 从XML字符串加载
XDocument xmlDoc = XDocument.Parse(xmlString, LoadOptions.PreserveWhitespace);
  • 保存/输出环节正确配置
    这是最容易被忽略的核心步骤,默认保存/输出时XDocument会自动格式化XML、重排缩进和换行,必须传入SaveOptions.DisableFormatting参数禁用自动格式化:
// 保存到本地文件
xmlDoc.Save("output.xml", SaveOptions.DisableFormatting);
// 转换为字符串输出
string resultXml = xmlDoc.ToString(SaveOptions.DisableFormatting);
  • 异常情况排查
    如果完成以上两步后仍有空白丢失,优先排查以下问题:
    • 原始XML存在语法错误:你提供的示例XML中<id标签后多了非法反引号,语法错误会导致XML解析器自动修正节点,连带周围空白被重置,先修正XML语法后再操作
    • 操作XML节点时删除了空白节点:手动修改XDocument节点时如果误删了XText类型的空白节点,也会导致空白丢失,调整节点操作逻辑避免误删即可

内容的提问来源于stack exchange,提问作者rushaal maksane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:15:03