如何使用PHP将同名的多个节点写入XML文件?

时间:2015-12-07 17:35:03

标签: php xml

我尝试使用PHP从表单中获取输入并将其写入XML文件。它适用于独特的字段,但有一个字段可以输入4次。

如果输入多个,则只将最后一个写入XML文件。

我的PHP:

<?php
        if(isset($_REQUEST['ok'])){
            $xml = new DOMDocument("1.0","UTF-8");
            $xml->load("../Players.xml");

            $rootTag = $xml->getElementsByTagName("site")->item(0);

            $entryTag = $xml->createElement("entry");

            $nameTag = $xml->createElement("name",$_REQUEST['name']);
            $countryTag = $xml->createElement("country",$_REQUEST['country']);
            $memTag = $xml->createElement("mem",$_REQUEST['mem']);

            $entryTag->appendChild($nameTag);
            $entryTag->appendChild($countryTag);
            $entryTag->appendChild($memTag);

            $rootTag->appendChild($entryTag);
            $xml->save("../Players.xml");

       }
?>

形式:

        <form action="index.php" method="post">
            <input type="text" name="name"/>
            <input type="text" name="country"/>
            <input type="text" name="mem"/>
            <input type="text" name="mem"/>
            <input type="text" name="mem"/>
            <input type="text" name="mem"/>
            <input type="submit" name="ok"/>
        </form>

1 个答案:

答案 0 :(得分:0)

从技术上讲,只需几对类似于

的指令
$memTag = $xml->createElement("mem",$_REQUEST['mem']);
$entryTag->appendChild($memTag);

结果应该是几个附加节点,如:

<entry>
    <mem>bla-bla</mem>
    <mem>bla123</mem>
</entry>

但是......为什么参数直接在$ _REQUEST? 你是否用名称&#39; mem&#39;检查了多少参数?是从浏览器发送的?