J'essaie d'extraire des informations XML de Weather Underground.Récupère le texte d'un élément à partir du document XML
Je peux ouvrir la ressource et extraire les éléments souhaités, mais je souhaite vraiment renvoyer l'élément text
en tant que variable, sans les balises d'élément XML contenant, afin de pouvoir le manipuler et l'afficher sur une page Web.
Peut-être y at-il un moyen de faire cela en utilisant regexp pour enlever les balises, mais je suppose/j'espère que je peux le faire d'une manière plus élégante directement dans Nokogiri.
Actuellement, je me sers RIR pour travailler la syntaxe:
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>
J'ai besoin d'aide avec la syntaxe spécifique en utilisant des constructions telles que:
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')
Toutes les erreurs de retour.
+1: Cela fonctionne. –
kRON oui, merci c'est exactement ça. J'ai aussi obtenu doc.xpath ('/ current_observation/weather'). Text() pour fonctionner, mais il a retourné des guillemets autour de la chaîne. Je pense que votre chemin est probablement plus utile pour moi. Merci. –
Oui cela fonctionne. J'ai également essayé doc.xpath ('/ current_observation/weather'). Text() - mais il renvoie des guillemets autour de la chaîne. Votre chemin est probablement plus utile pour moi. Merci –