hostip.info - Parse API response with SimpeXML
I'm trying to parse the xml response of http://api.hostip.info/?ip=12.215.42.19 with SimpleXML but I can't seem to get it work.
Response
<?xml version="1.0" encoding="ISO-8859-1" ?>
<HostipLookupResultSet version="1.0.1" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.hostip.info/api/hostip-1.0.1.xsd">
<gml:description>This is the Hostip Lookup Service</gml:description>
<gml:name>hostip</gml:name>
<gml:boundedBy>
<gml:Null>inapplicable</gml:Null>
&l开发者_JAVA技巧t;/gml:boundedBy>
<gml:featureMember>
<Hostip>
<ip>12.215.42.19</ip>
<gml:name>Sugar Grove, IL</gml:name>
<countryName>UNITED STATES</countryName>
<countryAbbrev>US</countryAbbrev>
<!-- Co-ordinates are available as lng,lat -->
<ipLocation>
<gml:pointProperty>
<gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:coordinates>-88.4588,41.7696</gml:coordinates>
</gml:Point>
</gml:pointProperty>
</ipLocation>
</Hostip>
</gml:featureMember>
</HostipLookupResultSet>
Can someone help me to access for instance Hostip>ipLocation>pointProperty>Point>coordinates
Thanks in advance!
Here are two ways (which are available elsewhere on SO by searching!).
XPath (a very basic on to demonstrate)
$coords = $xml->xpath('//gml:coordinates');
echo $coords[0];
"Simple" XML (not so simple)
echo $xml
->children('gml', TRUE)->featureMember
->children('', TRUE)->Hostip->ipLocation
->children('gml', TRUE)->pointProperty->Point->coordinates;
You can access attributes like array http://www.electrictoolbox.com/php-simplexml-element-attributes/ like (im not sure with your example)
Hostip->ipLocation->gml['pointproperty']
精彩评论