如何更改XML节点JavaScript或PHP

时间:2016-06-20 00:16:02

标签: javascript php html xml

我正在尝试创建一个评级系统。

我有一个XML文件,其中包含以下信息:

<?xml version="1.0" encoding="ISO-8859-1"?>
<PROGRAMMEDATA> 
    <PROGRAMME id="1">
        <TITLE>Arrow</TITLE>
        <IMAGE>img/arrow.jpg</IMAGE>
        <POINTS>0</POINTS>
    </PROGRAMME>
    ...etc
<PROGRAMMEDATA>

然后我有一个表格,有程序选项和1到5分。

<form>
    <select id="name">
        <option selected value=""></option>
        <option value="1">Arrow</option>
        <option value="2">You, Me and Dupree</option>
        <option value="3">Fargo</option>
        <option value="4">Flash</option>
    </select>
    <select id="rating">
        <option selected value="">stars</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>
    <input type="submit" value="Submit rating" onClick="saveRating()" />
</form>

这个想法是你可以选择一个程序,然后选择一个评级。然后,您可以提交该等级,然后将评级添加到XML文件中的相应程序中。

我尝试使用javascript捕获表单值,但我不知道如何将值存储在XML文件中。

var name = document.getElementById("name").value;
var rating = document.getElementById("rating").value; 

我想到的另一种方法是使用PHP,并使用DOMDocument,但我无法将其附加到POINTS,它只会添加到XML文件的底部。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效。

$file ="ratings_file.xml";

$title="test";
$image="img/arrow.jpg";
$points=0;

//load xml object
$xml= simplexml_load_file($ratings_file);

//assign title
$xml->PROGRAMME->title = $title;

//assign image
$xml->PROGRAMME->image = $image;

//assign points
$xml->PROGRAMME->points = $points;

//store the value into the file
file_put_contents($ratings_file, $xml->asXML());