尝试使用PHP脚本和jQuery更新XML文件时出现XML解析错误

时间:2013-08-19 10:31:58

标签: php xml ajax firefox firebug1.5

确定。真的希望有人能帮我回答以下问题。所以我使用XML数据存储区来为最后一年的项目提供持久性。这是XML文件的结构。

<?xml version="1.0"?>
<!DOCTYPE datastore SYSTEM "datastore.dtd">
<datastore>
<dataset>
<name>Test1</name>
<dataobject>
  <userid>001</userid>
  <adl1/>
  <adl2/>
  <adl3/>
  <city>London</city>
  <county/>
  <postcode>SE1 7HS</postcode>
  <country>United Kingdom</country>
  <amount>300.0</amount>
  <date>01/01/2013</date>
    </dataobject>
   </dataset>
    <dataset>
    <name>Test2</name>
    <dataobject>
        <userid>001</userid>
        <adl1/>
        <adl2/>
        <adl3/>
        <city>Tunbridge Wells</city>
        <county>Kent</county>
        <postcode>TN1 2GE</postcode>
        <country>United Kingdom</country>
        <amount>20</amount>
        <date>01/07/2013</date>
    </dataobject>
</dataset></datastore>

我希望用户能够做的一件事是添加一个新的数据集。很简单。所以我使用了以下小型jQuery函数和PHP脚本。

  function addDataSetToXML(dataset){
  $.ajax({
     type:'GET',
     url:'/phpScripts/addDataSet.php',
     data:{dataset : dataset},
     success:function(){
         window.alert("Added dataset " + dataset + " to gsdatastore.xml");
     },
    error:function() {window.alert("Did not work");}
    });
}

这里是addDataset.php:

<?php
$name = $_GET[$dataset];
$doc = new DOMDocument();
$xml = "../dataStore/gsdatastore.xml";
$doc->Load($xml);
$doc->formatOutput = true;
$newDataSetElement = $doc->createElement("dataset");
$newNameElement = $doc->createElement("name",$dataset);
$newDataSetElement->appendChild($newNameElement);
$root = $doc->documentElement;
$root->appendChild($newDataSetElement);
$doc->Save($xml);
?>

我在代码中找不到任何错误,当脚本运行时,我收到成功消息。我已经使用了Firebug并最终在响应消息中跟踪了以下内容(HTTP GET返回200 OK消息,因此它肯定找到了脚本并运行它)。

XML解析错误:未找到任何元素位置:moz-nullprincipal:{8b768c4c-ef3c-644a-ae97-dd38798b8ba1}第13行,第3列:

&GT?; - ^

有谁知道这意味着什么?我一直在努力。任何帮助都非常感激。

0 个答案:

没有答案