XmlReader - Eu preciso editar um elemento e produzir um novo

Eu estou substituindo um método que tem um XmlReader sendo passado, eu preciso encontrar um elemento específico, adicionar um atributo e, em seguida, criar um novo XmlReader ou apenas substituir o existente com o conteúdo modificado. Eu estou usando o C # 4.0

Eu tenho investigado usando XElement (Linq), mas não consigo manipular um elemento existente e adicionar um atributo e valor.

Eu sei que o XmlWriter tem WriteAttributeString que seria fantástico, mas novamente eu não tenho certeza como tudo isso se encaixa

Eu gostaria de ser capaz de fazer algo como --- Este é o pseudo-código!

public XmlReader DoSomethingWonderful(XmlReader reader)
{
   Element element = reader.GetElement("Test");
   element.SetAttribute("TestAttribute","This is a test");
   reader.UpdateElement(element);
   return reader;
}

questionAnswers(5)

yourAnswerToTheQuestion