Nokogiri-Я могу получить доступ к одному элементу по его имени, но не к тому, который находится сразу после него?

#xml #nokogiri

Вопрос:

Я пытаюсь сослаться на имя элемента «порт» из этого результата, но это кажется немного странным. Я могу получить доступ к имени элемента «хост», но не к порту. Вот результат:

 [9] pry(#<Import>)> result
=> #(Element:0x2b2568f3d640 { name = "port", children = [ #(Text "2121/tcp"), #(Element:0x2b2568f3d4c4 { name = "host", children = [ #(Text "172.17.9.18")] }), #(Element:0x2b256445ae5c { name = "severity", children = [ #(Text "4.8")] }), #(Element:0x2b2564445fac { name = "threat", children = [ #(Text "Medium")] })] })
 

Вот пример того, как я могу позвонить .xpath(".//host") , но не могу .xpath(".//port") :

 [11] pry(#<Import>)> result.xpath(".//host")
=> [#<Nokogiri::XML::Element:0x2b2568f3d4c4 name="host" children=[#<Nokogiri::XML::Text:0x2b2564463a5c "172.17.9.18">]>]
[12] pry(#<Import>)> result.xpath(".//port")
=> []
 

Почему это так и как мне получить доступ к тексту port ?

Комментарии:

1. Было бы полезно, если бы вы предоставили пример XML, который вы анализируете, и запрос, который вы используете для создания result .