如何从Yahoo Weather RSS获取标签“<yweather:condition>”xmllint </yweather:condition>

时间:2014-12-05 07:55:53

标签: xml xpath rss xmllint yahoo-weather-api

让我们尝试从Yahoo Weather RSS解析并提取节点。

网址在这里http://weather.yahooapis.com/forecastrss?w=12602818&u=c

xmllint 必须用于此目的。

以下是要提取的节点:

<yweather:condition  text="Partly Cloudy"  code="30"  temp="3"  date="Fri, 16 Nov 2014 8:10 am AST" />

问题

天真的xmllint --xpath "//yweather:condition" the_rss_file_from_yahoo回复了错误:

XPath error : Undefined namespace prefix
xmlXPathEval: evaluation failed
XPath evaluation failure

它必须来自于定义了命名空间的事实。但我们被困在这里。

是否可以在命令行中使用 xmllint 获取此节点?如果是的话,怎么样?

修改/应答: 由于问题被标记为重复,如果你是像我一样的XPath新手寻找单线解决方案,你可以使用xmllint filename --xpath "//*[local-name()='condition']",与另一个问题相反的两个斜线,这是使用一个(因为它是访问根节点)。但是,对于解决此问题的正式方法,请参阅原始问题中的答案A)并使用//而不是/在XPath查询中(感谢Tomalek帮助我)。

0 个答案:

没有答案