【问题标题】:write to existing XML file [duplicate]写入现有的 XML 文件 [重复]
【发布时间】:2014-06-17 04:47:10
【问题描述】:
所以这是任务。
我有一个现有的 XML 文件,位于我的公共保管箱文件夹中。
Link to XML File
我知道如何按照以下教程从 XML 文件中读取值
link to tutorial
并将 2 行更改为以下内容
xmlDoc=loadXMLDoc("https://dl.dropboxusercontent.com/u/4171179/testValues.xml");
x=xmlDoc.getElementsByTagName("growth");
但是我怎样才能写入那个文件呢?说我要换
<growth>1.25</growth>
到
<growth>1.05</growth>
这是怎么做到的,有可能吗?
问候
安德斯
【问题讨论】:
标签:
javascript
php
jquery
html
xmlhttprequest
【解决方案1】:
据我所知,Javascript 不允许写入任何文件(本地硬盘或服务器)。这是出于安全原因。因此,您可以做的最好的事情是对您的服务器进行 Ajax 调用,然后在您的 XML 文件中进行更改。
我建议您使用 Ajax,因为这样您就不必一直刷新页面。您可以查看 Jquery 以获得一种非常快速且简单的方式来进行 ajax 调用。
您在哪种服务器上运行您的网站? Apache (PHP) 还是 Windows (.NET)?
编辑:
只是一个快速的 JQuery ajax 调用示例。
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
然后在服务器上(PHP)
<?php
$growth_post = $_POST["growth"];
... code to handle the data ...
$doc = new DOMDocument();
$doc->load("https://dl.dropboxusercontent.com/u/4171179/testValues.xml");
$items = $doc->getElementsByTagName("data");
foreach( $items as $item ) {
$growth = $item->getElementsByTagName("growth");
$growth->item(0)->nodeValue = $growth_post;
}
$doc->save("https://dl.dropboxusercontent.com/u/4171179/testValues.xml")
?>
但您必须确保您对保管箱文件具有写入权限!