이 질문에 대한 답 : How to remove an xml element from file? 삭제하려는 요소 내의 정보를 알고 있으면 잘 작동하는 것으로 보입니다. 하지만 ASP.NET에서 OnItemDeleting 함수를 사용하여 ListView에서 항목의 선택된 인덱스 만 가질 수 있습니다. 내 C# 파일에서하위 인덱스를 기반으로 XML 요소를 제거하십시오.
이 내가 당신이 볼 수있는 두 가지 대안 (A와 B)를 정의, 그것은 다음과 같습니다 : 나는 같은 것을하려고하면
System.Diagnostics.Debug.WriteLine("IN ON ITEM DELETING.");
ListView1.SelectedIndex = e.ItemIndex;
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(path);
XmlNodeList nodes = xmldoc.GetElementsByTagName("EmployeeInformation");
for (int i = 0; i < nodes.Count; i++)
{
if (i == ListView1.SelectedIndex)
{
nodes[i].RemoveChild(nodes[i]); // Alt. A
xmldoc.RemoveChild(nodes[i]); // Alt. B
break;
}
}
xmldoc.Save(path);
BindDatalist();
, 나는 노드를 교체하는 방법을 잘 모릅니다 XmlNodeList에 노드가있는 XmlDocument에서, 그리고 B가 좋으면 작동하지 않으며 그 이상한 것입니다.
XML 파일은 다음과 같습니다
<EmployeeInformation>
<Details>
<Name>Goofy</Name>
<Emp_id>Goooof</Emp_id>
<Qualification>BBA</Qualification>
</Details>
<Details>
<Name>Donald</Name>
<Emp_id>Duck</Emp_id>
<Qualification>MTech</Qualification>
</Details>
<Details>
<Name>Donald</Name>
<Emp_id>Trump</Emp_id>
<Qualification>MCA</Qualification>
</Details>
</EmployeeInformation>
그래서 내가 옆에 버튼을 클릭하여 부동산 재벌 도널드 트럼프 항목을 제거 할 말을 할 수 있습니다. 필요하지 않음 귀하의 경우 반복 XmlNodeList에서
ListView1.SelectedIndex = e.ItemIndex;
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(path);
XmlNodeList nodes = xmldoc.GetElementsByTagName("Details");
for (int i = 0; i < nodes.Count; i++)
{
if (i == e.ItemIndex)
{
nodes[i].ParentNode.RemoveChild(nodes[i]);
break;
}
}
xmldoc.Save(path);
BindDatalist();
그 대답을 많이 주셔서 감사합니다. 이것은 완벽하게 작동합니다! –