你可以通過閱讀整個XML文件到內存中,並與它有自己的方式在一個非常狡猾的方式做到這一點:
string content = "";
// Read the XML file into content
StreamReader reader = new StreamReader("file.xml");
content = reader.ReadToEnd();
reader.Close();
// Find the character position just after the <?xml token, and just before the ?> token
int openIndex = content.IndexOf("<?xml", StringComparison.OrdinalIgnoreCase) + 5;
int closeIndex = content.IndexOf("?>", openIndex);
// Get the bits between <?xml and ?>
string header = content.Substring(openIndex, closeIndex - openIndex);
// Substitute version string.
header = header.Replace("version=\"1.1\"", "version=\"1.0\"");
// Put Humpty Dumpty back together again.
content = string.Concat(content.Substring(0, openIndex), header, content.Substring(closeIndex));
// Feed content into an XMLReader (or equivalent) here.
它爲您提供的字符串的話,但我沒有測試它在不完美格式化的XML文檔上。
爲什麼不直接使用文本編輯器或使用正則表達式替換它? – 2010-05-24 23:47:55
我其實剛剛瞭解到Regex今天,但我還沒有真正熟悉如何使用它。至於爲什麼不手動替換它,應用程序會自動將這些XML文件從ePub歸檔文件中提取出來,因此手動替換它並不是真正的選擇。 – kcoppock 2010-05-24 23:55:14