替换cXML DOCTYPE声明

时间:2016-12-07 09:46:17

标签: c# xml

我希望从传入的cXML文档中替换DOCTYPE声明:

<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.029/cXML.dtd">

并以<!DOCTYPE cXML>

结束

我目前使用匹配的if cXML.Contains(matching value).Replace("DOCTYPE cXML"); 问题是价值是可变的。 有没有通配符选项?

2 个答案:

答案 0 :(得分:0)

string xml = @"<!DOCTYPE cXML SYSTEM ""http://xml.cxml.org/schemas/cXML/1.2.029/cXML.dtd"">
                 <cXml>
                 </cXml>
                ";

XDocument doc = XDocument.Parse(xml);
var name = doc.DocumentType.Name;

var docType = new XDocumentType(name, null, null, null);

doc.DocumentType.ReplaceWith(docType);

Console.WriteLine(doc.ToString());

您需要创建新的XDocumentType,然后替换上一个。

答案 1 :(得分:0)

您可以使用以下代码示例来删除和添加来自cXML的DOCTYPE

XmlDocument XDoc = new XmlDocument();
XDoc.Load(sXMLFile);
XmlDocumentType XDType = XDoc.DocumentType;
XDoc.RemoveChild(XDType); 

添加DocType的内容相同