Re: Re: Need help... getting information from external xml document
| From: | GH | Date: | Thu, 23 Sep 2004 14:59:03 +0000 |
| Subject: | Re: Re: Need help... getting information from external xml document | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-197693@lists.php.net to get a copy of this message | ||
As John noted at the end... I do not have control over the format of
the XML... but thanks.... I will try... BTW i am using PHP4 is
SimpleXML able to be used and if so how?
Sorry for the newbie question
On Thu, 23 Sep 2004 10:44:31 -0400, John Holmes
<holmes072000@charter.net> wrote:
> From: "GH" <GaryHotko@gmail.com>
>
> >> I am new to php and xml and would like to know how I can set a
> >> variable (i.e $terror_threat_level) equal to the value of
> >> Threat_Advisory's Condition in the following that is available at
> >> http://www.dhs.gov/dhspublic/getAdvisoryCondition ...
> >>
> >> <?xml version="1.0" encoding="UTF-8" ?>
> >> <THREAT_ADVISORY CONDITION="ELEVATED" />
>
> Hmmm... I couldn't get SimpleXML to work with this data; maybe it doesn't
> pick up attributes or that XML could be better formed???
>
> I'm sure there's an XML way to do it, but if you don't find anything,
> here's
> a quick way to match it with regular expressions.
>
> <?
> $str =
>
> file_get_contents('http://www.dhs.gov/dhspublic/getAdvisoryCondition');
> preg_match('/CONDITION="([^"]+)"/',$str,$match);
> echo $match[1];
> ?>
>
> Off topic, I was thinking this XML would be "better formed" XML as:
>
> <THREAT_ADVISORY_CONDITION>ELEVATED</THREAT_ADVISORY_CONDITION>
>
> and then you can use:
>
> $str =
>
> file_get_contents('http://www.dhs.gov/dhspublic/getAdvisoryCondition');
> $xml = simplexml_load_string($str);
>
> but simplexml simply has one element, [0] => ELEVATED. You can't do $xml[0]
> or $xml->0 (since $xml is an object), etc and you have to do
>
> $threat = current($xml);
> echo $threat;
>
> You can cast $xml to an array, but that still doesn't seem very intuitive:
>
> $a = (array)$xml;
> echo $a[0];
>
> I'm not an XML wiz by any means... is this just bad XML that SimpleXML is
> handling the best it can or is SimpleXML acting up?? If it's bad XML put out
> by DHS, then I can pass some messages up the chain... :)
>
> ---John Holmes...
>
>