Re: xml parsing issue [message #184705 is a reply to message #184698] |
Sat, 18 January 2014 13:54 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 1/18/2014 4:54 AM, Rob B wrote:
> I feel pretty stupid posting this but I just can't sort it. I have a very short and simple piece of XML and I can't parse it, I have parsed xml in the past without issue but this I just can't sort for some reason.
>
> The XML:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <RegionalFcst xmlns="www.metoffice.gov.uk/xml/metoRegionalFcst"
> issuedAt="2014-01-18T04:00:00"></RegionalFcst>
>
>
> A print_r of the simplexml object it is loaded into:
>
> (
> [@attributes] => Array
> (
> [issuedAt] => 2014-01-18T04:00:00
> )
>
> )
>
> All I want is that"issuedAt" time stamp, but it's an attribute not an element. I have tried a foreach through @attributes and got nothing. I am even thinking of streaming it through an awk script (hosted on linux). I really would like to avoid that and stay within PHP.
>
> Any help appreciated.
>
> Rob
>
Rob,
You're close, your simplexml object is but it is an object, not an
array. You have to call the attributes() function to get the array
of attributes, i.e.
foreach ($xml->attributes() as $name => $value)
echo $name . '="' . $value ."\"\n";
You can access just the 'issuedAt' attribute with
$name = 'issuedAt';
$value = $xml->attributes()->$name;
(Note: when using a non-default namespace you will have to specify the
namespace you're using, i.e.
$xml->RegionalFcst[0]->attributes....
Don't try to just cast the object as a string; you will get all kinds of
extra stuff if other attributes are added to your xml object.
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex(at)attglobal(dot)net
==================
|
|
|