xpath返回simplexmlelement对象而不是值

时间:2012-06-27 18:47:14

标签: php xpath simplexml

我有一个xml文档,我试图使用xpath访问某个子元素的值。

$xml = new SimpleXMLElement($url,null,true);
$value = $xml->xpath("/xxx/yyy/zzz");

当我使用时:

print_r($value);

输出以下内容:

Array
(
    [0] => SimpleXMLElement Object
        (
            [0] => 1003.39
        )

)

我可以通过执行以下操作来访问SimpleXMLElement对象的值:

echo $value[0]

但是我不想将SimpleXMLElement对象存储在$ value中。我想将对象值存储在$ value中。

e.g。我想用:

echo $value

返回

1003.39

我需要更改

$value = $xml->xpath("/xxx/yyy/zzz");

为了返回值,而不是对象?

P.S。如果我使用(string)转换为字符串,那么我的print_r或echo $值将打印“Array”而不是值!

1 个答案:

答案 0 :(得分:1)

->xpath()按定义返回一个数组,所以:

$result = $xml->xpath("/xxx/yyy/zzz");
$value = $result[0];

然后是:

$value = (string)$value;

或者:

$value = strval($value);

如果您希望将整个数组转换为字符串:

$result = $xml->xpath("/xxx/yyy/zzz");
$result = array_map('strval',$result);