0

Yahoo Weather RSS からノードを解析して抽出してみましょう。

URLはこちら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初心者の場合は、1つを使用xmllint filename --xpath "//*[local-name()='condition']"していた他の質問とは反対に、2つのスラッシュを使用できます(アクセスしていたため)ルートノード)。ただし、これに対処する正式な方法については、元の質問の回答 A) を参照し、XPath クエリで / の代わりに // を使用してください (助けてくれた Tomalek に感謝します)。

4

0 に答える 0