使用javascript将XML DOM保存回服务器文件

时间:2015-06-09 10:42:30

标签: javascript xml

我在服务器上有一个xml文件,我这样检索:

var xmlhttp = new XMLHttpRequest();

xmlhttp.onload = function() {

    var xmlDoc = xmlhttp.responseXML;

    //I modify the XML here!
}

xmlhttp.open("GET", "http://localhost:8888/car.xml", false);
xmlhttp.send();

我现在想要使用Javascript将修改保存回服务器上的文件。我试过了xmlhttp.open("POST"...,但它没有用。任何想法都会有很大的帮助!

编辑:

所以我给了PHP一个但不能让它工作。这就是我所拥有的:

$xmlFile = 'http://localhost:8888/car.xml';
$xml = simplexml_load_file($xmlFile);

$car = $_POST['car'];

echo $car;

$id = 0;

foreach($xml->data->car as $item)
{
    if($item['id'] > $id)
    {
        $id = $item['id'];
    }
}

$newsXML = new SimpleXMLElement("<car></car>");
$newsXML->addAttribute('id', $id++);

$xml->appendChild(newsXML);

file_put_contents('http://localhost:8888/car.xml', $xml->asXML());

1 个答案:

答案 0 :(得分:-1)

我将假设MAMP中的P是PHP,我不太清楚,但你创建了一个PHP文件,它从$ _POST(http://php.net/manual/en/reserved.variables.post.php)对象获取更新的数据,在PHP中构建一个DOM树,并将其保存到您需要的地方。

我认为表单节点元素可能是你需要的,因为表单元素有一个action属性(http://www.htmlcodetutorial.com/forms/_FORM_ACTION.html),它定义了哪个页面将接收POST数据。此页面将处理文件的写入,而不是javascript。

基础是你需要两个文件,一个文件包含一个表单元素。 form.php的:

<form action="submit.php" method="POST">
    <input type="text" name="name"></input>
</form>

submit.php:

<?php
    echo 'Hello ' . htmlspecialchars($_POST["name"]) . '!';
?>

这样的事情应该向您展示如何在网站上提交数据的基础知识,或者您可以放弃MAMP堆栈并按照其他人的建议使用NodeJS。