You've asked two questions here, and I'll take them one at a time.
First, I used that convoluted bit of code to select nodes from XPathNavigator because that's what the .NET Framework Class Library Reference said to do, in http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxmlnodeclassselectnodestopic.asp.
As for your second point, well, yes, XmlNode.SelectNodes() would have been much simpler. I am guilty of not yet having read enough of the documentation.
After a bit more research, here is another way to write the SearchForArtist() method. You'll notice that it does not use XPathNavigator directly, however it achieves the same result as my original code and is, I think, a little clearer to read.
public void SearchForArtist(string artist) {
XmlNode root = document.DocumentElement;
XmlNodeList nodeList = root.SelectNodes("//CD[@artist=normalize-space('" + artist + "')]");