在PHP中加载XML文件,如果不存在则添加Child

时间:2014-08-22 11:10:59

标签: php xml simplexml addattribute

我想用地址数据将XML数据加载到我的php文件中。 每个地址也应该有坐标 - 如果不是,则应该添加它们。所以我正在做以下事情:

        $xmlDatei = "AddressData.xml";
        $xml = simplexml_load_file($xmlDatei);

        for($i=0,$size=count($xml);$i<$size;$i++){

            if($xml->RECORD[$i]->ADDRESS->LAT != NULL){
                //get lat and lng stuff here...

                $lat = .......
                $lng = .......


                echo "lat: " . $lat; // Test echo WORKING
                echo "lng: " . $lng;

                // Now i want to add the data to the xml
                $xml->RECORD[$i]->ADDRESS->addAttribute('LAT', $lat);
                $xml->RECORD[$i]->ADDRESS->addAttribute('LNG', $lng);

                $xml->saveXML();
            }

            // Test echo NOT WORKING
            echo $xml->RECORD[$i]->ADDRESS->LAT;
            echo $xml->RECORD[$i]->ADDRESS->LNG;
        }

所以看起来addAttribute在这里工作不正常。

我做错了什么???

2 个答案:

答案 0 :(得分:0)

您的回音正在寻找名为LAT元素

echo $xml->RECORD[$i]->ADDRESS->LAT;

但是您添加了属性,因此您需要使用不同的语法:

echo $xml->RECORD[$i]->ADDRESS['LAT'];

答案 1 :(得分:0)

您要向ADDRESS标记添加属性,而不是节点。

试试这个:

echo $xml->RECORD[$i]->ADDRESS['LAT'];
echo $xml->RECORD[$i]->ADDRESS['LNG'];