无法使用 PHP 访问 XML 元素

Cannot get to XML element with PHP

我正在用 PHP 处理一大段 XML。我正在尝试获得特定值,但遇到问题:

$diag_data = simplexml_load_file($diagnostics);

print_r($diag_data->category->category[2]->measure[3]);

输出:

SimpleXMLElement Object
(
    [name] => Memory
    [value-list] => SimpleXMLElement Object
        (
            [item] => Array
                (
                    [0] => SimpleXMLElement Object
                        (
                            [name] => allocated memory
                            [value] => 3,354 MB
                        )

                    [1] => SimpleXMLElement Object
                        (
                            [name] => free memory
                            [value] => 2,165 MB
                        )

                    [2] => SimpleXMLElement Object
                        (
                            [name] => maximum memory
                            [value] => 10,923 MB
                        )

                    [3] => SimpleXMLElement Object
                        (
                            [name] => total free memory
                            [value] => 9,734 MB
                        )

                )

        )

)

那我试试这个:

print_r($diag_data->category->category[2]->measure[3]->value-list);

输出:

PHP Parse error:  syntax error, unexpected ')', expecting '(' in /var/www/html/xmltester.php on line 17

我不明白,我试过在值列表两边加上单引号和双引号,但没有任何效果。我也试过大括号。我做错了什么?

当键名包含连字符时,您需要特殊语法 {""} 才能访问 属性:

print_r($diag_data->category->category[2]->measure[3]->{"value-list"});