我希望从传入的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");
问题是价值是可变的。
有没有通配符选项?
答案 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的内容相同