我使用XmlWriter
創建了一種類似於Xml的格式。但是在輸出中也有版本信息。從xml文件中刪除版本
<?xml version="1.0" encoding="utf-8"?>
我不需要這個在我的文件中。我怎樣才能做到這一點?有什麼辦法通過代碼刪除它?
我使用XmlWriter
創建了一種類似於Xml的格式。但是在輸出中也有版本信息。從xml文件中刪除版本
<?xml version="1.0" encoding="utf-8"?>
我不需要這個在我的文件中。我怎樣才能做到這一點?有什麼辦法通過代碼刪除它?
使用ConformanceLevel
和OmitXmlDeclaration
性能。例如:
XmlWriter w;
w.Settings = new XmlWriterSettings();
w.Settings.ConformanceLevel = ConformanceLevel.Fragment;
w.Settings.OmitXmlDeclaration = true;
爲什麼要使用ConformanceLevel它沒有設置w.Settings.ConformanceLevel = ConformanceLevel.Fragment;也。什麼是ConformanceLevel? – viky 2009-12-31 09:23:01
「碎片」一致性級別意味着你不寫整個文檔,你正在寫一個片段。該文檔說,如果'ConformanceLevel'設置爲'Document',那麼將'OmitXmlDeclaration'設置爲'true'不會產生任何影響。 – 2009-12-31 10:10:43
只需要注意,你不需要有'w.Settings.ConformanceLevel = ConformanceLevel.Fragment'這行''如果你也使用'writer.WriteStartDocument();'它會引發錯誤。有人可能會認爲,您不應該以這種方式使用它,但只要您將其保留爲'settings.ConformanceLevel = ConformanceLevel.Auto;'即可。 – Ravendarksky 2015-11-23 16:57:24
在創建的XmlWriter,通過你想要使用XmlWriterSettings設置:
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
writer = XmlWriter.Create(Console.Out, settings);
XmlWriterSettings具有其他性能,以及(縮進和更多)。
停!請!不要製作「類似XML的格式」。使用真正的XML。如果它是類似於XML的,那麼另一個開發人員就會出現,看看它,假定它是XML,然後在嘗試將它解析爲XML時遇到問題。 (一旦你使用真正的XML,處理指令的使用將不會成爲問題,因爲在那裏給出的值是缺少處理指令時默認的值)。 – Quentin 2009-12-30 13:27:53
這是規範要求的XML聲明。你爲什麼要刪除它? (該聲明在XML 1.0中是可選的,但在XML 1.1中是必需的) – 2009-12-30 13:28:11
此外,您查找的信息包含在序列化對象時的問題_Omitting XML處理指令中(http://stackoverflow.com/questions/164585/省略-xml-processing-instruction-when-serializing-an-object) – 2009-12-30 13:28:59