2016-12-07 77 views
1

我期待,以取代從傳入cXML的文檔的DOCTYPE聲明:更換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

在你有XML作爲字符串值乞討? – mybirthname

+0

是的,我願意,謝謝 – JohnL

+0

您可以查看我的答案。告訴我,如果有什麼不明確的。 – mybirthname

回答

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,然後替換上一個。

0

你行你下面的代碼示例,以消除和cXML的加入DOCTYPE

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

同樣的東西添加DOCTYPE的