Hola Pedro el ejercicio está bien. Hay una cosa que quizás resultara interesante. La idea es que el libro tiene un id que en el xml has definido como idBook, como el id es un valor numérico se supone que único, podría ser interesante identificar el libro en base a ese id en lugar de en base al nombre del libro que es una cadena de texto donde podría ser más fácil que hubiera errores.
El cambio arrancaría aquí:
if (str=='xmlDeveloper') {
libroElegido="101";
} else if(str=='midnightRain') {
libroElegido='102';
} else if(str=='maeveAscendat') {
libroElegido='103';
} else {
libroElegido='none';
}
A partir de ahí habría que hacer algunos cambios más.
En realidad sería prácticamente igual pero usando el id para identificar el libro.
No lo he probado pero parece que sería una buena idea ya que la comparación de cadenas de texto tiende a ser más imprecisa (incluso podría presentarse un caso raro como dos libros con el mismo título)
Saludos