brenlex
asked on
Removal of XML element after LINQ query
My XML doc content:
<?xml version="1.0" encoding="utf-8"?>
<Main>
<Members type="">
<Member>
<Primary notes="">100</Primary>
<Secondary notes="Phone">5100</Second ary>
</Member>
<Member>
<Primary notes="">200</Primary>
<Secondary notes="Phone">5200</Second ary>
</Member>
<Member>
<Primary notes="">200</Primary>
<Secondary notes="Fax">6200</Secondar y>
</Member>
</Members>
</Main
I am experiencing a problem whereby I cannot remove a Member element in its entirety -- i.e. after running the code below, I always have a blank entry left in the file:
<Member />
The blank entries are causing me problems later when I attempt additional queries on the data.
<?xml version="1.0" encoding="utf-8"?>
<Main>
<Members type="">
<Member>
<Primary notes="">100</Primary>
<Secondary notes="Phone">5100</Second
</Member>
<Member>
<Primary notes="">200</Primary>
<Secondary notes="Phone">5200</Second
</Member>
<Member>
<Primary notes="">200</Primary>
<Secondary notes="Fax">6200</Secondar
</Member>
</Members>
</Main
I am experiencing a problem whereby I cannot remove a Member element in its entirety -- i.e. after running the code below, I always have a blank entry left in the file:
<Member />
The blank entries are causing me problems later when I attempt additional queries on the data.
m_xmlDoc = XDocument.Load("test.xml");
IEnumerable<XElement> membersMap = from memberRef in m_xmlDoc.Descendants("Member")
where memberRef.Element("Primary").Value == "200"
select memberRef;
foreach (XElement memberRef in membersMap)
{
memberRef.RemoveAll(); // remove Primary and Secondary elements
//memberRef.Remove(); // this causes an exception!
}
m_xmlDoc.Save("test.xml");
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Not a problem, glad to help. ;=)
ASKER