当前位置: 首页 > 编程语言 > C#

C#LINQTOXML-从DTD标头中删除“”字符分享

时间:2023-04-10 16:37:12 C#

C#LINQTOXML-从DTD标头中删除“”字符正是它应该做的,除了一件事:它在DOCTYPE标记的末尾添加了“[]”,这显然会导致文件被遗留系统拒绝。这是之前和之后:BeforeAfter这些字符是在使用.Save函数将文件保存在程序中之后添加的。该程序允许选择一个.xml文件,然后通过删除某些标签来“清理”它,然后保存它。进程启动时文件的DOCTYPE中没有“[]”。保存后,他们会这样做。LINQtoXML添加这些吗?有没有办法让程序不添加这些字符?显然,当XDocument解析包含文档类型声明的XML文档时,如果它不存在,则会自动插入一个空的“内部子集”。(内部子集是由[]包围的部分。结果是格式正确的XML。但是,如果遗留系统无法处理它,您可以通过将XDocumentType.InternalSubset属性设置为空来从DTD中删除内部子集:XDocument文档=...;if(document.DocumentType!=null)document.DocumentType.InternalSubset=null;如果你正在使用Mono(如cod3monk3y)来处理这个,比如修改Info.plist,你可以使用旧的XmlDocument类在创建/修改xml文件后使用XDocument修复。代码假设你的“Info.plist”文件位于infoPlist路径下:以上是C#学习教程:C#LINQTOXML-Removethe""characterfromtheDTDheader如果对大家有用就把完整内容分享出来并且需要了解更多关于C#学习教程,希望大家多多关注——usingSystem;使用System.IO;使用System.Linq;使用System.Xml;使用System.Xml.Linq;varxDocument=XDocument.Load(infoPlist);//在这里做你的操作xDocument.Save(infoPlist);XmlDocumentxmlDocument=newXmlDocument();xmlDocument.Load(infoPlist);if(xmlDocument.DocumentType!=null){varname=xmlDocument.DocumentType.Name;varpublicId=xmlDocument.DocumentType.PublicId}(infoPlist);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: