From: "GH" <[EMAIL PROTECTED]>

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...

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to