我编写了一个代码,根据该代码,我可以根据记录数将一个XML文件写入多个XML文件中。
我在一个XML文件中有14条记录,在XML文件中有不同的标记。
我正在尝试创建每个都有2条记录的XML文件,所以最后我应该有7个XML文件。
但相反,我只获得了14个文件,每个文件都有两个相似的记录。
以下是我的XML格式,它是动态创建的。格式正确。但是每个文件中都有两个相似的条目。因此,而不是7写它14文件。
<?xml version="1.0"?>
<data>
<Product>
<PID>SGLDN7XJ2FPZH8G8</PID>
<PNAME>Miami Blues Aviator Sunglasses</PNAME>
</Product>
</data>
以下是制作XML文件的文件。我认为初始化for循环有问题:
$docOutput = new DOMDocument("1.0");
$root = $docOutput->createElement("data");
$docOutput->appendChild($root);
if (!$sxmlReading = simplexml_load_file('firstxml.xml')) {
throw new RuntimeException('Error reading XML file');
}
$x = 0;
foreach ($sxmlReading as $syn) {
for ($i = $x * 2; $i < ($x + 1) * 2; $i++) {
$id = $docOutput->createElement("PID");
$idText = $docOutput->createTextNode($syn->productId);
$id->appendChild($idText);
$title = $docOutput->createElement("PNAME");
$titleText = $docOutput->createTextNode($syn->productname);
$title->appendChild($titleText);
$book = $docOutput->createElement("Product");
$book->appendChild($id);
$book->appendChild($title);
$root->appendChild($book);
$docOutput->formatOutput = true;
echo "<xmp>" . $docOutput->saveXML() . "</xmp>";
$docOutput->save("xml$x.xml") or die("Error");
}
$x++;
}
请检查代码并突出显示我的错误......
答案 0 :(得分:0)
它正在编写14个文件,因为您正在调用DOMDocument::save()
方法14次。
老实说,听起来更像是一个错字,我看不出有什么不妥。 PHP就像你写的一样。