0

首先,我必须告诉你,我对 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>,我不知道该怎么做!

4

1 回答 1

0

在你的第二个代码不应该这一行:

$valueUDID = $UDIDFile->addChild('valueUDID',$udidDevice);

变成这样:

$valueUDID = $UDID->addChild('valueUDID',$udidDevice);

它没有关闭它的原因是因为你有错误的变量名导致它在根上创建了 2 个新元素。

现场演示。

于 2013-09-06T17:51:31.520 回答