<?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;
}
}
?>
And as you can see is a simple script who return the content of the tag from the above url. The thing is that i dont need that content, i need the one who is inside the tag . I need the attributes code, temp, text. How do i do that simple with my actual code? Thanks
Ex of the tag content:
<yweather:condition text="Partly Cloudy" code="30" temp="30" date="Fri, 16 Jul 2010 8:30 am AST" />
Something like:
The key is that you have to use
getElementsByTagNameNS
instead ofgetElementsByTagName
and specify"http://xml.weather.yahoo.com/ns/rss/1.0"
as the namespace.You know
yweather
is a shortcut forhttp://xml.weather.yahoo.com/ns/rss/1.0
because the XML file includes axmls
attribute:How about:
DOMElement::getAttribute
— Returns value of attributeAnd if you need to get anything with namespaces, there is corresponding methods ending in
NS
.