我已经为同一个项目发布了另一个问题,该问题得到了有益的回答,但我似乎遇到了另一个问题,该问题似乎足够不同,因此需要一个单独的问题。任何帮助将不胜感激,如果您能提供任何帮助,请提前感谢您。
好的,首先让我描述一下我在做什么。我正在使用带有位置库的 google Maps Javascript v3 API 来查找附近的餐馆和一些关于它们的额外信息。每个搜索结果(在本例中为餐厅)的数据都存储在 JSON 对象中。现在一位同事需要这些 XML 格式的数据并存储在我们的 Web 服务器上,以便他的程序可以访问和读取它。所以我使用 jQuery JSON2XML 插件 ( http://goessner.net/download/prj/jsonxml/ ) 将该 JSON 转换为 XML 字符串。然后我使用 jQuery ajax 函数将数据推送到应该保存它的 php 文件中。这是javascript代码:
function sendData(result)
{
$.ajax(
{
type:'POST',
url:'getXML.php',
data:
{
'myXML': result,
'ajax' : true
},
success: function(data)
{
$('#output').text(data);
}
})
}
然后从那里数据应该被发送到我的 PHP 文件 (getXML.php),我编写的代码将打开一个现有的 XML 文件(在 PHP5 中使用 SimpleXML),然后附加来自 AJAX 调用的 XML。然后它将保存 XML 文件,这一切都将在每家餐厅再次发生。(所以它将向服务器发送多个 AJAX POST 请求。)这是我的 PHP 代码:
<?php
//Set error reporting
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
error_reporting(E_ALL);
//Checks if the get request is from the AJAX call
if($_POST['ajax'])
{
//////////////////////////////Code for editing XML/////////////////////////////////////////
//Checks to see if the xml file exists.
if (file_exists('business.xml'))
{
//Loads the XML file
$xml = simplexml_load_file('business.xml');
//Append XML to existing file using data loaded in from AJAX request
appendXML($xml);
}
else
{
//Loading XML has failed
exit('Failed to open business.xml.');
}
}
function appendXML($xml)
{
//Creates new business node
$business = $xml ->addChild('business');
//Adds XML to business node (Please oh dear god let this work)
$business ->addChild($_POST['myXML']);
file_put_contents("business.xml", $xml);
header('Location: form_upload.php');
}
?>
好的,这有点多,但让我进入我告诉你我的问题的部分。我是 PHP 新手,所以我不完全确定这里出了什么问题,但是当我将数据发布到服务器时,每个 ajax 请求都会出现两个错误。
第一个是:
PHP Warning: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: business.xml:1: parser error : Document is empty in /home/mpn3712/www/309/gPlaces/getXML.php on line 16
第二个是
PHP Fatal error: Call to a member function addChild() on a non-object in /home/mpn3712/www/309/gPlaces/getXML.php on line 31
再次感谢大家的帮助!