如何将一些数据写入.xml文件

时间:2017-06-27 00:42:54

标签: javascript php html ajax xml

现在我必须建立一个网上商店的网站,现在我正在做的商店部分我需要像txt文件或xml这样的数据,如名称,价格,img,描述类似的东西。现在它正在读取一个xml文件并根据该文件在它们上创建项目,但现在我需要实现一个像“向商店添加新产品”这样的功能,但我似乎无法将数据附加到该xml文件,我不知道为什么,我已经尝试过PHP,但它确实无效。这是我的一些HTML代码:

这是添加项目的表单:

<form action="Adicionar_produto.php" method="post">
    <input type="text" name="name"/>
    <input type="text" name="image"/>
    <input type="text" name="price"> 
    <input type="submit" name="ok" value="add"/>
</form>

这是我试过的PHP脚本,但目前没有使用:

<?php
if(isset($_REQUEST['OK'])){
    $xml = new DOMDocument("1.0", "utf-8");
    $xml -> load("Produtos.xml");
    $rootTag = $xml -> getElementsByTagName("CATALOG")->item(0); 
    $dataTag = $xml->createElement("item");
    $nameTag = $xml->createElement("name",$_REQUESTE['name']);
    $imageTag = $xml->createElement("image",$_REQUESTE['image']);
    $priceTag = $xml->createElement("price",$_REQUESTE['price']);
    $dataTag->appendChild($nameTag);
    $dataTag->appendChild($imageTag);
    $dataTag->appendChild($priceTag);
    $rootTag->appendChild($dataTag);
    $xml->save("Produtos.xml");
}
?>

1 个答案:

答案 0 :(得分:0)

如果练习是练习你的原始php,那么可以尝试SimpleXML。这是一个使用它的例子。此外,您正在寻找$_REQUEST['OK'],但您的表单显示$_REQUEST['ok'](小写ok):

if(!empty($_POST['ok'])) {
    $Xml    =   simplexml_load_file("Produtos.xml");
    $Item   =   $Xml->CATALOG->addChild('item');
    $Item->addChild('name',$_POST['name']));
    $Item->addChild('image',$_POST['image']);
    $Item->addChild('price',$_POST['price']);
    $Xml->asXml("Produtos.xml");
}

或多或少会为你提供(我不知道你的基本数组是什么命名,我只是命名为config

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <CATALOG>
        <item>
            <name>test</name>
            <image>brd</image>
            <price>123123</price>
        </item>
        <item>
            <name>goood</name>
            <image>masss</image>
            <price>3212321</price>
        </item>
    </CATALOG>
</config>