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

OpenXmlPowerTools空元素自闭合标签不符合HTML规范,如何解决?

解决Linq to XML/OpenXmlPowerTools生成自闭合空标签的问题

不用正则替换,直接通过Linq to XML的API就能解决,核心思路是给空元素添加空文本节点,强制生成非自闭合标签:

  • 创建元素时直接指定空内容
    不管是HTML元素还是OpenXML的元素,创建时传入string.Empty或者XText("")即可:

    // HTML的div例子
    var div = new XElement("div", string.Empty);
    // 输出为 <div></div> 而非 <div/>
    
    // OpenXML的tc例子
    var tc = new XElement(W.tc, string.Empty);
    // 输出为 <tc xmlns="http://schemas.openxmlformats.org/wordprocessingml/2006/main"></tc>
    
  • 处理已存在的空元素
    如果是已经生成的XML文档里的空元素,可以遍历所有空元素,给它们添加空文本节点:

    foreach (var emptyElem in yourXmlDoc.Descendants()
                                        .Where(e => !e.HasElements && string.IsNullOrEmpty(e.Value)))
    {
        emptyElem.Add(string.Empty);
    }
    

这种方法比正则替换可靠得多,不会因为XML的命名空间、嵌套结构等问题出现匹配错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:49:54