从xml响应中获取某些部分?

时间:2016-05-10 07:45:39

标签: php xml

我有一些PHP代码调用,然后从API接收响应(使用file_get_contents()),API响应使用XML格式,如下所示:

<?xml version="1.0"?>
<root><status>success</status>
<duration>5 seconds</duration>
<average>13692.4</average></root>

所以例如在PHP中我将如何获取此XML响应并获取(比方说)<average>的值?任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:1)

有几种方法可以解析XML,其中一种方法是XMLReader。从您发布的XML中检索average值的简单示例如下:

<?php

// Read the XML output from the API
$xml = file_get_contents('https://api.example.com/output.xml');

$reader = new XMLReader();
$reader->open('data://text/xml,' . $xml);

// Read the XML
while ($reader->read()) {
    // Look for the "average" node
    if ($reader->name == 'average') {
        $value = $reader->readString();
        if (!empty($value)) {
            // This will output 13692.4
            var_dump($value);
        }
    }
}

$reader->close();

这里可以看到一个实例:https://3v4l.org/s7sNl