我将如何使用SimpleXML在PHP中回应这一点

时间:2010-02-05 21:56:06

标签: php xml simplexml

Response example for MD5 hash found, for example http://md5.noisette.ch/md5.php?hash=2a0231531bc1a7fc29e2fa8d64352ae9 :

<md5lookup>
  <hash>2a0231531bc1a7fc29e2fa8d64352ae9</hash>
  <string>noisette</string>
</md5lookup>

Response for MD5 hash *not* found, for example http://md5.noisette.ch/md5.php?hash=11111111111111111111111111111111 :

<md5lookup>
  <error>
    No value in MD5 database for this hash.
  </error>
</md5lookup>

Response for MD5 hash *not* found, for example http://md5.noisette.ch/md5.php?hash=1 :

<md5lookup>
  <error>
    The string provided is not a true MD5 hash. Please try again.
  </error>
</md5lookup>

好的我只是在学习如何使用SimpleXML。我正在运行一个脚本来运行来自不同站点的类似API,但这是不同的。我不知道如果它是一个错误我将如何使用PHP来回显错误,如果它是成功的话我不知道如何使用字符串。我现在使用的API只有真或假,但无论结果如何,它仍然是相同的层次结构。

例如

http://gdataonline.com/qkhash.php?mode=xml&hash=notanactualhashandwillnotbefound 找不到该哈希值。 http://gdataonline.com/qkhash.php?mode=xml&hash=098f6bcd4621d373cade4e832627b4f6 该哈希将返回“test”

正如您所看到的,层次结构将是相同的,因此易于解析和回显

1 个答案:

答案 0 :(得分:1)

我不确定我理解您的要求,但您只需将URL加载到SimpleXml并通过常规对象表示法访问节点,例如

$parentNode->childNode

以下示例将从URL加载XML并输出错误(如果存在),否则将输出字符串节点。

$baseUrl = 'http://md5.noisette.ch/md5.php?hash=';
$hashes  =  array('2a0231531bc1a7fc29e2fa8d64352ae9',
                  '11111111111111111111111111111111',
                  'not a hash');

foreach($hashes as $hash) {

    // load the XML from the URL
    $dom = simplexml_load_file($baseUrl . $hash);

    if($dom->error) {
        echo $dom->error;
    } else {
        echo $hash, ' : ', $dom->string;
    }

    echo PHP_EOL; // linebreak
}