PHP simplexml在具有属性的元素中添加子项


PHP simplexml addchild in element with attributes

我是php的新手,在谷歌上还没有答案。所以我希望你能帮助我。

我想用SimpleXML在我的xml文件中添加一个子项。我认为代码更能说明问题:

之前

<data>
<categorie id="Search">
    <fav>
        <nom>Google</nom>
        <lien>www.google.fr</lien>
    </fav>
    <fav>
        <nom>Orange</nom>
        <lien>www.orange.fr</lien>
    </fav>
</categorie>
<categorie id="Social">
    <fav>
        <nom>Facebook</nom>
        <lien>www.facebook.com</lien>
    </fav>
</categorie>
</data>

之后

<data>
<categorie id="Search">
    <fav>
        <nom>Google</nom>
        <lien>www.google.fr</lien>
    </fav>
    <fav>
        <nom>Orange</nom>
        <lien>www.orange.fr</lien>
    </fav>
</categorie>
<categorie id="Social">
    <fav>
        <nom>Facebook</nom>
        <lien>www.facebook.com</lien>
    </fav>
    <fav>
        <nom>Youtube</nom>
        <lien>www.youtube.com</lien>
    </fav>
</categorie>
</data>

所以我不想把Youtube添加到"社交"类别中。

目前,我在php中得到了表单的结果。

$lien = $_POST['link'];
$nom = $_POST['name'];
$categorie = $_POST['cat'];

谢谢你的帮助!

我找到了解决方案

$xml = simplexml_load_file('../data/data.xml');
$fav = $xml->categorie[0]->addChild("fav"," ");
$fav->addChild("link","toto");
$fav->addChild("desc","tutu");
$xml->asXML('../data/data.xml');