【问题标题】:xpath returning simplexmlelement object not valuexpath返回simplexmlelement对象不是值
【发布时间】:2012-06-27 18:47:14
【问题描述】:

我有一个 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 中。

例如我想使用:

echo $value

返回

1003.39

我需要改变什么

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

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

附言如果我使用 (string) 转换为字符串,那么我的 print_r 或 echo $value 会打印“Array”而不是 value!

【问题讨论】:

    标签: php xpath simplexml


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 2014-03-10
      • 2018-09-01
      • 2015-01-06
      • 1970-01-01
      相关资源
      最近更新 更多