1
<?php
    $doc = new DOMDocument();
    $doc->load('http://weather.yahooapis.com/forecastrss?p=VEXX0024&u=c');
    $channel = $doc->getElementsByTagName("channel");
    foreach($channel as $chnl)
    {
        $item = $chnl->getElementsByTagName("item");
        foreach($item as $itemgotten)
        {
            $describe = $itemgotten->getElementsByTagName("description");
            $description = $describe->item(0)->nodeValue;
            echo $description;
        }
    }
?>

ご覧のとおり、上記のURLからタグのコンテンツを返す単純なスクリプトです。事は私がそのコンテンツを必要としないということです、私はタグの中にいるものが必要です。属性コードtemptextが必要です。実際のコードでこれを簡単に行うにはどうすればよいですか?ありがとう

タグコンテンツの例:

<yweather:condition  text="Partly Cloudy"  code="30"  temp="30"  date="Fri, 16 Jul 2010 8:30 am AST" />
4

2 に答える 2

5

何かのようなもの:

echo $itemgotten->getElementsByTagNameNS(
    "http://xml.weather.yahoo.com/ns/rss/1.0","condition")->item(0)->
     getAttribute("temp");

重要なのは、名前空間getElementsByTagNameNSの代わりにを使用し、名前空間としてgetElementsByTagName指定する必要があるということです"http://xml.weather.yahoo.com/ns/rss/1.0"

XMLファイルには次の属性が含まれているため、yweatherのショートカットです。http://xml.weather.yahoo.com/ns/rss/1.0xmls

<rss version="2.0" xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0"
    xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
于 2010-07-16T21:34:02.007 に答える
0

どうですか:

また、名前空間で何かを取得する必要がある場合は、で終わる対応するメソッドがありますNS

于 2010-07-16T21:31:54.757 に答える