tôi hiểu sự cần thiết để loại bỏ Tuyên bố XML; Tôi đang làm việc trên một kịch bản thay đổi nội dung của ứng dụng preferences.xml
và ứng dụng không đọc tệp đúng cách nếu khai báo có (không chắc chắn lý do các nhà phát triển quyết định bỏ qua khai báo XML).
Thay vì rối tung xung quanh với XML nữa, tôi chỉ cần tạo phương thức removeXMLdeclaration()
đọc tệp XML và xóa dòng đầu tiên, sau đó viết lại nó đơn giản bằng cách sử dụng trình soạn thảo/người viết. Nó rất nhanh và hoạt động rất tốt! Tôi chỉ cần gọi phương thức sau khi tôi đã thực hiện tất cả thay đổi XML của mình để làm sạch tệp một lần và cho tất cả.
Đây là mã:
public void removeXMLdeclaration()
{
try
{
//Grab file
StreamReader sr = new StreamReader(xmlPath);
//Read first line and do nothing (i.e. eliminate XML declaration)
sr.ReadLine();
string body = null;
string line = sr.ReadLine();
while(line != null) // read file into body string
{
body += line + "\n";
line = sr.ReadLine();
}
sr.Close(); //close file
//Write all of the "body" to the same text file
System.IO.File.WriteAllText(xmlPath, body);
}
catch (Exception e3)
{
MessageBox.Show(e3.Message);
}
}
Nguồn
2014-04-09 17:52:56
Tôi đoán rằng dòng đầu tiên là cần thiết để 'XmlDocument' đọc đúng tệp, như biết mã hóa nào sẽ sử dụng. Bất kỳ lý do nào khiến bạn không thể xóa dòng đó như thể nó là một tệp văn bản chuẩn? – LightStriker
Tại sao bạn muốn xóa * hướng dẫn xử lý * này? –
Nó không phải là một dòng, nó là một yếu tố. Và nó làm hại không ai, vậy tại sao lại bận tâm? Vấn đề của bạn là yêu cầu của bạn. –