-1

このようなファイルを作成しようとしています

<blogs>
<blog title="Ipsum" text="Ipsum">
<photo photos=img1"/>
<photo photos=img2"/>
<photo photos=img3"/>
</blog>
<blog title="ipsum2" text="ipsum2">
<photo <photo photos=img4"/>

しかし、何らかの理由で出力がノードを閉じることはなく、次のようなxmlファイルが表示されます

<blogs>
<blog title="Ipsum" text="Ipsum" />
<photo photos=img1"/>
<blog title="Ipsum" text="Ipsum"/>
<photo photos=img2"/>
<blog title="Ipsum" text="Ipsum"/>
<photo photos=img4"/>
<blog title="ipsum2" text="ipsum2"/>
<photo photos=img4"/>
</blogs>

これが私の機能です。

$dom = new DOMDocument("1.0");
$root = $dom->createElement("blogs");
$parnode = $dom->appendChild($root);

$root = $dom->createElement("blog"); 
$newnode = $parnode->appendChild($root);   

 $photo = $dom->createElement("photo");
 $parnode->appendChild($photo);
 $newnode->setAttribute("title",$row['title']);
 $newnode->setAttribute("text", $row['text']);  
 $photo->setAttribute("photos", $row['photos']); 

  echo $dom->saveXML();

何か案は ?

4

1 に答える 1

4

要素の代わりphotoにルートに要素を追加していますblogsblog

このコードを試してください:

$dom = new DOMDocument("1.0");
$root = $dom->createElement("blogs");
$parnode = $dom->appendChild($root);

$root = $dom->createElement("blog"); 
$newnode = $parnode->appendChild($root);   

 $photo = $dom->createElement("photo");
 $newnode->appendChild($photo); // HERE you need change $parnode to $newnode
 $newnode->setAttribute("title",$row['title']);
 $newnode->setAttribute("text", $row['text']);  
 $photo->setAttribute("photos", $row['photos']); 

  echo $dom->saveXML();

10 個の写真を含む 10 個のブログのループを使用した追加の例:

$dom = new DOMDocument("1.0");
$root = $dom->createElement("blogs");
$parnode = $dom->appendChild($root);
for($x = 0; $x < 10; $x++){
    $root = $dom->createElement("blog");
    $newnode = $parnode->appendChild($root);

    for($i = 0; $i < 10; $i++){
        $photo = $dom->createElement("photo");
        $newnode->appendChild($photo);
        $newnode->setAttribute("title",$row['title']);
        $newnode->setAttribute("text", $row['text']);
        $photo->setAttribute("photos", $row['photos']);
    }
}

echo $dom->saveXML();
于 2013-05-20T12:25:18.817 に答える