2017-09-07 10 views
1

私は配列配列からマルチレベルXMLファイルを作成する方法は?

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

を持っていると私は

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

のようなことから、マルチレベルのXMLを作成したいと私は

$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(); 

出力:この1つは役に立つことを願っています@timukh

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

。 –

+0

はい、動作しています!どうもありがとうございます。私は今どこが間違っているのかを見ます。再度、感謝します! – timukh

+0

はい、私はしますが、最低限の時間があり、その前にサイトで回答を受け入れることができません。 「あなたは5分で答えを受け入れることができます」と表示しています。だから私は5mins後になります:) – timukh

関連する問題