Accessing Values within a SimpleXMLElement Object
When working with XML data in PHP, the SimpleXMLElement class simplifies the retrieval of values from XML nodes. However, sometimes you may encounter situations where casting an XML node to a string is necessary to obtain the desired result.
Consider the following example:
<?php $url = "http://ws.geonames.org/findNearbyPostalCodes?country=pl&placename="; $url .= rawurlencode($city[$i]); $xml = simplexml_load_file($url); echo $url."\n"; $cityCode[] = array( 'city' => $city[$i], 'lat' => $xml->code[0]->lat, 'lng' => $xml->code[0]->lng ); print_r($xml); ?>
In this example, the SimpleXML Object represents the parsed XML data. However, when attempting to access the lat property of the first code node, you encounter an object instead of the expected numeric value.
To retrieve the value as a string, you need to explicitly cast the SimpleXML Object to a string using the (string) operator:
$value = (string) $xml->code[0]->lat;
This will effectively convert the SimpleXML Object to its textual representation, revealing the desired value:
$value = "52.25";
By understanding the need to cast SimpleXML Objects to strings when necessary, you can efficiently extract and manipulate values from XML data in PHP.
The above is the detailed content of How Do I Extract Numeric Values from a SimpleXMLElement Object in PHP?. For more information, please follow other related articles on the PHP Chinese website!