XML解析错误-文档末尾的额外内容

我正在尝试提供获取JSON或XML响应的选项。

JSON可以正常工作,但是当我查看XML时,出现错误。

http://lmsapi.com/?api_key=fba9e59d7af86b239e82581780ff987e&format=json

http://lmsapi.com/?api_key=fba9e59d7af86b239e82581780ff987e&format=xml

我不确定发生了什么问题。我已经搜索过,唯一看到的是确保我的元素名称中没有多余的空格,甚至没有空格,而我没有。

index.php

<?php

require_once('includes/inc.settings.php');

if(${'Response'}['format'] == 'json'){

print_r(${'Results'});

}elseif(${'Response'}['format'] == 'xml'){

header('Content-type: application/xml');

echo "<?xml version=\"1.0\"?>";

echo ${'Results'};

}

?>

inc.settings.php

<?php

// ****************************************

// Require other includes

// ****************************************

require('Excel/PHPExcel.php');

require('inc.variables.php');

require('inc.functions.php');

require('inc.browser.php');

require('class.phpmailer.php');

// ****************************************

// Initial page setup

// ****************************************

// Set our Error Handling

if($debug == true){

error_reporting(E_ALL);

ini_set('display_errors', 1);

} else {

error_reporting(E_ERROR);

ini_set('display_errors', 1);

}

// Set our timeout limit

set_time_limit(30);

// Set our memory limit

ini_set('memory_limit', '128M');

// Start our PHP session

session_start();

// Set our charset to UTF-8

mb_internal_encoding('UTF-8');

// Get our browser information

$browser = new Browser;

// ****************************************

// Connect to mySQL

// ****************************************

mysql_connect(MYSQL_HOST.':'.MYSQL_PORT, MYSQL_USER, MYSQL_PASS) or die('Could not establish a connection to the MySQL Engine.');

mysql_select_db(MYSQL_DB) or die('Could not locate the specified database');

// ****************************************

// Sanitize our possible api data

// ****************************************

if(isset($_GET['api_key'])) { ${'API KEY'} = inputCleanSQL($_GET['api_key']); } else { ${'API KEY'} = ''; }

if(isset($_GET['format'])){ ${'Format'} = inputCleanSQL($_GET['format']); } else { ${'Format'} = ''; }

if(isset($_GET['act'])){ ${'Action'} = inputCleanSQL($_GET['act']); } else { ${'Action'} = ''; }

if(isset($_GET['phone_numer'])){ ${'Phone Number'} = inputCleanSQL(removeCHARSphone($_GET['phone_number'])); } else { ${'Phone Number'} = ''; }

if(isset($_GET['limit'])){ ${'Limit'} = inputCleanSQL($_GET['limit']); } else { ${'Limit'} = ''; }

// ****************************************

// Begin the Response Array

// ****************************************

${'Response'} = array();

${'Response'}['status'] = '';

${'Response'}['reason'] = array();

${'Format Type'} = true;

// Check the API Key

if(isset(${'API KEY'})){

${'API Key Check'} = mysql_result(mysql_query('SELECT count(0) FROM `api`.`api_keys` WHERE `api_key` = "'.${'API KEY'}.'"'),0);

if(!${'API Key Check'}) {

${'Response'}['status'] = 'failed';

${'Response'}['reason'][] = 'invalid api key';

} else {

// Log the API hit

mysql_query('INSERT INTO `api`.`api_log` (`api_key`) VALUES ("'.${'API KEY'}.'")');

// Check the format request

if(${'Format'} != '' && ${'Format'} != 'json' && ${'Format'} != 'xml'){

${'Response'}['status'] = 'failed';

${'Response'}['reason'][] = 'invalid format specified (&format=)';

${'Format Type'} = false;

}

// Check the action request

if(${'Action'} != '' && ${'Action'} != 'get' && ${'Action'} != 'details'){

${'Response'}['status'] = 'failed';

${'Response'}['reason'][] = 'invalid action type (&act=)';

}

if(${'Response'}['status'] != 'failed'){

${'Response'}['status'] = 'success';

unset(${'Response'}['reason']);

}

}

} else {

${'Response'}['status'] = 'failed';

${'Response'}['reason'][] = 'api key required';

}

if(isset(${'Format'}) && ${'Format Type'}){

if(${'Format'} == 'json'){

${'Response'}['format'] = 'json';

${'Results'} = json_encode(${'Response'});

} elseif(${'Format'} == 'xml'){

${'Response'}['format'] = 'xml';

${'Results'} = arrayToXML(${'Response'});

}

} else {

${'Response'}['format'] = 'json';

${'Results'} = json_encode(${'Response'});

}

?>

任何帮助将非常感激!

回答:

XML只能有一个“文档实体”或“根”,您正在尝试使用两个(statusformat)。将两个元素包装在一个元素中,这样您的XML文档只有一个根元素。

<?xml version="1.0"?>

<status>success</status>

<format>xml</format>

<?xml version="1.0"?>

<response>

<status>success</status>

<format>xml</format>

</response>

以上是 XML解析错误-文档末尾的额外内容 的全部内容, 来源链接: utcz.com/qa/402260.html

回到顶部