2017-09-07 63 views
1

我有一個數組如何從數組創建多級XML文件?

$arr=array("A","B","C"); 

和我想創建從一個多級XML等

<root> 
    <error> 
    <A> 
     <B> 
     <C> 
      <D/> 
     </C> 
     </B> 
    </A> 
    </error> 
</root> 

和我所編寫的代碼作爲

$arr = array("A", "B", "C", "D"); 
$doc = new DomDocument(); 
$doc->formatOutput=true; 
$doc->LoadXML('<root/>'); 
$root = $doc->documentElement; 
$errorgroup = $doc->createElement('error'); 
$root->appendChild($errorgroup); 
foreach($arr as $erreur) { 
    $missinggroup = $doc->createElement($erreur); 
    $errorgroup->appendChild($missinggroup); 
    $errorgroup=$doc->createElement($erreur); 
} 
echo $doc->saveXml(); 

但輸出只在XML內部錯誤中顯示<A/>,而不是其餘的B和C.在哪裏我錯了?

回答

1

希望這個會有所幫助。

問題:$errorgroup=$doc->createElement($erreur);我也不是你所想用這條線做。

更改此:

$errorgroup=$doc->createElement($erreur); 

要這樣:

$errorgroup=$missinggroup; 

Try this code snippet here

<?php 

ini_set('display_errors', 1); 

$arr = array("A", "B", "C", "D"); 
$doc = new DomDocument(); 
$doc->formatOutput=true; 
$doc->LoadXML('<root/>'); 
$root = $doc->documentElement; 
$errorgroup = $doc->createElement('error'); 
$root->appendChild($errorgroup); 
foreach($arr as $erreur) { 
    $missinggroup = $doc->createElement($erreur); 
    $errorgroup->appendChild($missinggroup); 
    $errorgroup=$missinggroup; 
} 
echo $doc->saveXml(); 

輸出:

<root> 
    <error> 
    <A> 
     <B> 
     <C> 
      <D/> 
     </C> 
     </B> 
    </A> 
    </error> 
</root> 
+0

@timukh希望這一個會有所幫助。 –

+0

是的,它工作!非常感謝。我看到我現在出錯了。再次感謝! – timukh

+0

是的,我會的,但有一個最低限度的時間,在此之前,該網站不讓我接受答案。它顯示「你可以在5分鐘內接受答案」。所以我會在5分鐘後:) – timukh