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


Load XML File in PHP and add Child if not exists

我想加载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在这里没有正常工作。

我做错了什么?

您的echo正在寻找名为LAT:

的子元素
echo $xml->RECORD[$i]->ADDRESS->LAT;
但是你已经添加了一个属性,所以你需要使用不同的语法:
echo $xml->RECORD[$i]->ADDRESS['LAT'];

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

试试这个:

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