Các mã sau đây nên tìm thẻ dự án thích hợp và loại bỏ nó từ XmlDocument, tuy nhiên khi tôi kiểm tra nó, nó nói:nút Loại bỏ từ một XmlDocument
Nút phải được loại bỏ không phải là một đứa trẻ của nút này .
Có ai biết cách thích hợp để thực hiện việc này không?
public void DeleteProject (string projectName)
{
string ccConfigPath = ConfigurationManager.AppSettings["ConfigPath"];
XmlDocument configDoc = new XmlDocument();
configDoc.Load(ccConfigPath);
XmlNodeList projectNodes = configDoc.GetElementsByTagName("project");
for (int i = 0; i < projectNodes.Count; i++)
{
if (projectNodes[i].Attributes["name"] != null)
{
if (projectName == projectNodes[i].Attributes["name"].InnerText)
{
configDoc.RemoveChild(projectNodes[i]);
configDoc.Save(ccConfigPath);
}
}
}
}
CẬP NHẬT
cố định. Tôi đã làm hai việc:
XmlNode project = configDoc.SelectSingleNode("//project[@name='" + projectName + "']");
Đã thay thế vòng lặp với truy vấn XPath, không phải để sửa chữa nó, chỉ vì đó là cách tiếp cận tốt hơn.
Việc sửa chữa thực tế là:
project.ParentNode.RemoveChild(project);
Cảm ơn Pat và Chuck cho đề nghị này.
Tôi chỉ đang tìm kiếm thứ này. Tôi đã dành một nửa ngày tìm kiếm các công cụ xml trên internet và nửa phút trên SO. Tuy nhiên, một lý do khác khiến Jeff và Joel phải làm gì đó. –