2013-09-06 3 views
0

우선 나는 완전히 PHP에 익숙하다는 말을해야합니다!PHP로 작성한 SimpleXML

간단한 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"); 

모든 것이 OK입니다, 내 파일을 생성하고 내가 원하는 아이를 추가! 파일이 난 단지 내가 사용하는 내 자식을 추가 할 필요가있는 경우

<?xml version="1.0"?> 
<iPhone> 
    <UDID> 
    <valueUDID>myValue</valueUDID> 
    </UDID> 
</iPhone> 

: 나는 형식 파일을 얻기 위해 DOM을 사용

$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

해야하지이 라인 :

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

이 수 :

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

그것을 닫지 않는 이유는 당신이 그것을 일으키는 원인이되는 잘못된 변수 이름을했기 때문에 루트에 2 개의 새로운 요소를 생성하십시오.

Live DEMO.

+0

네! Prix ​​대단히 감사합니다! – JackoJack