修复使用<code>XmlDocument</code>加载含有DOCTYPE的Xml时,加载后增加“[]”字符的错误...

本文介绍了一个用于移除 XML 文档类型定义 (DTD) 中方括号字符的方法。该方法通过创建一个新的 DocumentType 节点并替换原有的节点来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C# LINQ TO XML - Remove “[]” characters from the DTD header

http://stackoverflow.com/questions/12358061/c-sharp-linq-to-xml-remove-characters-from-the-dtd-header

        public static void FixDocumentType(this XmlDocument xml)
        {
            if (xml?.DocumentType == null)
                return;
            var name = xml.DocumentType.Name;
            var publicId = xml.DocumentType.PublicId;
            var systemId = xml.DocumentType.SystemId;
            var parent = xml.DocumentType.ParentNode;
            var documentTypeWithNullInternalSubset = xml.CreateDocumentType(name, publicId, systemId, null);
            if (parent == null || xml.DocumentType == null)
                return;
            parent.ReplaceChild(documentTypeWithNullInternalSubset, xml.DocumentType);
        }

  

转载于:https://www.cnblogs.com/maozhh/p/6731581.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值