secuencias regulares online expresiones ejemplos consultas and altova ruby xml parsing nokogiri

ruby - regulares - xpath selenium



El uso de XPath en un solo nodo devuelve elementos en todos los nodos (2)

Cuando utiliza //title busca todos los elementos <title> que comienzan en la raíz del documento. Utilice simplemente title para buscar títulos secundarios, o .//title si desea buscar títulos incluso si están anidados dentro de otros elementos.

Estoy analizando un documento XML que se ve así:

<MyBook> <title>Favorite Poems</title> <issn>123-456</issn> <pages>45</pages> </MyBook> <MyBook> <title>Chocolate Desserts</title> <issn>654-098</issn> <pages>100</pages> </MyBook> <MyBook> <title>Jabberwocky</title> <issn>454-545</issn> <pages>19</pages> </MyBook>

Utilizo xpath para extraer los nodos de MyBook y repetirlos de la siguiente manera:

xmldoc.xpath("//MyBook").each do |node| mytitle=node.xpath("//title").text puts mytitle end

la salida se ve así:

Favorite PoemsChocolateDessertsJabberwocky Favorite PoemsChocolateDessertsJabberwocky Favorite PoemsChocolateDessertsJabberwocky

como si el nodo fuera realmente todo el xmldoc. Sin embargo, si imprimo el nodo dentro del iterador, cada vez que es lo que espero, solo un solo nodo MyBook. Necesito poder sacar los nodos secundarios de cada nodo sucesivamente, no todos los mismos nodos secundarios de todo el documento. ¿Qué estoy haciendo mal?


Elimine // de la expresión xpath del título.