My suggestion is to use use LINQ to XML. It greatly simplifies the problem. Given a XML file like this
<?xml version="1.0" encoding="utf-8" ?>
<hints>
<hint>
<id value="1"/>
<clues value="A"/>
<answer value="Starbucks"/>
<difficulty value="4"/>
<date value="09/16/21"/>
</hint>
<hint>
<id value="2"/>
<clues value="B"/>
<answer value="Starbucks"/>
<difficulty value="4"/>
<date value="09/16/21"/>
</hint>
<hint>
<id value="3"/>
<clues value="C"/>
<answer value="Starbucks"/>
<difficulty value="4"/>
<date value="09/16/21"/>
</hint>
<hint>
<id value="4"/>
<clues value="D"/>
<answer value="Starbucks"/>
<difficulty value="4"/>
<date value="09/16/21"/>
</hint>
<hint>
<id value="3"/>
<clues value="E"/>
<answer value="Starbucks"/>
<difficulty value="4"/>
<date value="09/16/21"/>
</hint>
</hints>
You can remove all the hints with an id of 3 like this
public void TestXml()
{
string xmlPath = @"C:\temp\hints.xml";
XDocument document = XDocument.Load(xmlPath);
string targetId = "3";
document.Descendants("id")
.Where((e) => e.FirstAttribute.Value == targetId)
.Select((e) => e.Parent)
.Remove();
document.Save(@"C:\temp\hints2.xml");
}