首先,我必须告诉你,我对PHP来说是绝对新手!
我想写一个简单的XML文件。
我有一个循环,如果文件不存在,我创建文件并添加我需要的第一个孩子:
$newFile = simplexml_load_file("myXMLPattern.xml");
$UDID = $newFile->addChild('UDID');
$valueUDID = $UDID->addChild('valueUDID',$udidDevice);
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($newFile->asXML());
$dom->saveXML();
$dom->save("./UDID/".$udidReference.".xml");
一切都很好,它会创建我的文件并添加我需要的孩子!我使用DOM来获取格式文件:
<?xml version="1.0"?>
<iPhone>
<UDID>
<valueUDID>myValue</valueUDID>
</UDID>
</iPhone>
当文件存在时,我只需要添加我和我使用的孩子:
$UDIDFile = simplexml_load_file("./UDID/".$udidReference.".xml");
$UDID = $UDIDFile->addChild('UDID');
$valueUDID = $UDIDFile->addChild('valueUDID',$udidDevice);
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($UDIDFile->asXML());
$dom->saveXML();
$dom->save("./UDID/".$udidReference.".xml");
但我得到的结果是:
<?xml version="1.0"?>
<iPhone>
<UDID>
<valueUDID>myValue</valueUDID>
</UDID>
</UDID>
<valueUDID>myNewValue</valueUDID>
</iPhone>
这不是我想要的!我只是想补充一下:
<UDID>
<valueUDID>myNewValue</valueUDID>
</UDID>
我的代码简单关闭标记</UDID>
,我不知道该怎么做!
答案 0 :(得分:0)
关于你的第二个代码不应该这一行:
$valueUDID = $UDIDFile->addChild('valueUDID',$udidDevice);
是这样的:
$valueUDID = $UDID->addChild('valueUDID',$udidDevice);
它不关闭它的原因,因为你有错误的变量名称导致它在根目录上创建2个新元素。
<强> Live DEMO. 强>