-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的根blogs插入blog

试试这个代码:

$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 回答