PHP写入SimpleXML并保存

时间:2014-04-17 08:02:29

标签: php xml simplexml

拥有以下代码,我需要做点什么:

XML

<?xml version="1.0" encoding="UTF-8"?>
<ToDoList>
    <Item>
        <Name>Complete this xml</Name>
        <Category>Programming</Category>
    </Item>
    <Data>
    </Data>
</ToDoList>

PHP

<html>
    <head>
        <style>
        b {
            font-size:30px;
        }
        h1 {
            font-size:40px;
        }
        i {
            font-size:18px;
        }
        span {
            font-size:24px;
        }
        </style>
    </head>
    <body>
        <?php
            $ToDoList = simplexml_load_file("list/todo.xml");
            $Name = $ToDoList->getName();
            echo("<h1>".$Name."</h1>");
            foreach($ToDoList->children() as $item){
                echo("<b>" . $item->getName() . " : " . $item . "<br></b>");
                foreach($item->attributes() as $name => $value){
                    echo("<i>attr. : " . $name . " = " . $value . "<br></i>");
                }
                foreach($item->children() as $subitem){
                    echo("<span>" . $subitem->getName() . " : " . $subitem . "<br></span>");
                }
            }
        ?>
    </body>
</html>

我需要做的是:

  

写入xml然后保存。

我想在<Test>1</Test>中写<Data></Data>。之后,我想将其保存回list/todo.php

我已经尝试过阅读问题来编写和保存xml,但这两种方法都没有用。

我应该使用什么代码(在php中)来解决这个问题?

EDIT ---

我尝试使用此代码,但它没有工作:

$NewItem = $ToDoList->ToDoList->addChild('Item');
$NewItem->addChild("Name","Test");
$NewItem->addChild("Category","Test");
$ToDoList->asXML("test.xml");

1 个答案:

答案 0 :(得分:1)

像这样使用。用你的元素和child替换元素。这是示例代码。

$xml = new DOMDocument();
$xml_item = $xml->createElement("Item");
$xml_name = $xml->createElement("Name");
$xml_category = $xml->createElement("Category");
$xml_album->appendChild( $xml_name );
$xml_album->appendChild( $xml_category );
$xml->appendChild( $xml_album );

$xml->save("test.xml");