sea*_*p2k 2 php arrays string simplexml
我有这个:
[1]=>
object(SimpleXMLElement)#6 (1) {
["@attributes"]=>
array(14) {
["name"]=>
string(5) "MySQL"
["acknowledged"]=>
string(1) "1"
["comments"]=>
string(1) "1"
["current_check_attempt"]=>
string(1) "1"
["downtime"]=>
string(1) "0"
["last_check"]=>
string(19) "2010-05-01 17:57:00"
["markdown_filter"]=>
string(1) "0"
["max_check_attempts"]=>
string(1) "3"
["output"]=>
string(42) "CRITICAL - Socket timeout after 10 seconds"
["perfdata_available"]=>
string(1) "1"
["service_object_id"]=>
string(3) "580"
["state"]=>
string(8) "critical"
["state_duration"]=>
string(6) "759439"
["unhandled"]=>
string(1) "0"
}
}
Run Code Online (Sandbox Code Playgroud)
(我使用var_dump($ child)来生成)
如何从字符串中获取'name'属性?
这是我的代码:
$xml = simplexml_load_string($results);
foreach($xml->data->list as $child) {
var_dump($child);
echo $child->getName() . ": " . $child->name . "<br />";
}
Run Code Online (Sandbox Code Playgroud)
JW.*_*JW. 13
虽然你可以这样做:
echo $child['name'];
Run Code Online (Sandbox Code Playgroud)
要查看该值,您应该注意这$child['name']是一个对象,而不是一个字符串.回应它会将其转换为字符串,因此它适用于那种情况.但是如果你把它存放在某个地方,最好把它自己投射到一个字符串:
$name = (string) $child['name'];
Run Code Online (Sandbox Code Playgroud)
Pas*_*TIN 12
使用SimpleXML,您可以获得:
$element->subElement$element['attribute']
所以,在这里,我要说你必须使用:
echo $child['name'];
Run Code Online (Sandbox Code Playgroud)
作为参考,有关几个示例,请参阅simplexml手册的基本用法部分.
示例#6应该是有趣的,关于属性.