PHP将变量放入SimpleXML

时间:2015-11-18 09:01:05

标签: php variables simplexml

我遇到simpleXML和变量

的问题
$num = $categorie['id'];
echo $num; /*return value is 1 or 0*/
$fav = $xml->categorie[$num]->addChild("fav"," ");

我想将$ num放入类别[$ num]但不起作用。我怎么能这样做?

我的XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<data>
    <categorie id="0" name="Search">
        <fav>
            <link>Google</link>
            <desc>www.google.fr</desc>
        </fav>
        <fav>
            <link>Orange</link>
            <desc>www.orange.fr</desc>
        </fav>
    </categorie>
    <categorie id="1" name="Social">
        <fav>
            <link>Facebook</link>
            <desc>www.facebook.com</desc>
        </fav>
        <fav>
            <link>Youtube</link>
            <desc>www.youtube.com</desc>
        </fav>
     </categorie>
</data>

我的php完整的PHP代码。问题出在foreach循环中。我比较了类别名称以获取ID并将新的喜好放在正确的类别中。

<?php

$link = $_POST['link'];
$desc= $_POST['desc'];
$cat = $_POST['cat'];

$xml = simplexml_load_file('../data/data.xml');


foreach($xml->categorie as $categorie)
{
    if (strcmp($categorie['name'], $cat) == 0)
    {
        $num = $categorie['id'];
        echo $num;
        $fav = $xml->categorie[$num]->addChild("fav"," ");
        $fav->addChild("link", $link);
        $fav->addChild("desc", $desc);
        $xml->asXML('../data/data.xml');
    }
 }
?>

由于

1 个答案:

答案 0 :(得分:0)

解决方案是将对象转换为intval()

的整数
$num = intval($categorie['id']);
$fav = $xml->categorie[$num]->addChild("fav"," ");
$fav->addChild("link", $link);
$fav->addChild("desc", $desc);
$xml->asXML('../data/data.xml');