1

好的。真的希望有人可以帮助我回答以下问题。因此,我在最后一年的项目中使用 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 列:

?> --^

有谁知道这意味着什么?这一直在做我的头脑。非常感谢任何帮助。

4

0 回答 0