Я пытаюсь извлечь некоторую информацию из XML из Weather Underground.
Я могу открыть ресурс и вытащить нужные элементы, но я действительно хочу вернуть элемент text
в качестве переменной, без содержащих теги элементов XML, чтобы я мог манипулировать им и отображать его на веб-странице.
Возможно, есть способ сделать это, используя регулярное выражение, чтобы убрать теги, но я подозреваю / надеюсь, что смогу сделать это более элегантным способом прямо в Нокогири.
В настоящее время я использую irb для определения синтаксиса:
irb>require 'rubygems'
irb>require 'nokogiri'
irb>require 'open-uri'
irb>doc = Nokogiri::XML(open('http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=KBHB'))
=> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
=> <?xml version="1.0"?>
# [...]
<!-- 0.036:0 -->
irb>doc.xpath('/current_observation/weather')
=> <weather>Clear</weather>irb(main):019:0>
irb>doc.xpath('/current_observation/wind_dir')
=> <wind_dir>North</wind_dir>
irb>doc.xpath('/current_observation/wind_mph')
=> <wind_mph>10</wind_mph>
irb>doc.xpath('/current_observation/pressure_string')
=> <pressure_string>31.10 in (1053 mb)</pressure_string>
Мне нужна помощь с определенным синтаксисом при использовании таких конструкций, как:
doc.xpath.element('/current_observation/weather')
doc.xpath.text('/current_observation/weather')
doc.xpath.node('/current_observation/weather')
doc.xpath.element.text('/current_observation/weather')
Все ошибки возврата.