我目前正在使用 PHP 将一个 xml 文件拆分为多个较小的文件。为此,我从一组标题创建新的 xml 文件,然后使用 foreach 循环遍历原始 xml 文件,并使用 if 语句检查每个“产品”的“子类别”是否与其中一个匹配相关文件,然后在 if 语句中添加相关数据。
我的问题是第一个文件只包含相关数据,但之后的每个文件都包含来自先前已填充文件的数据以及它自己的数据。
下面的代码显示了这里的工作 - 我目前对每个子类别都有单独的 foreach 循环,但我不知道为什么,例如,搜索 subcategory3 会选择 subcategory1、subcategory2 和 subcategory3(尽管我可能遗漏了一些东西相当明显!)...
foreach( $xml->product as $product )
{
// Look for different subcategories
if (strpos($product->category ,'subcategory1') !== false)
{
// write data to xml file and save
$root = $xmlFile->createElement("product");
$root = $xmlFile->appendChild($root);
// These lines are repeated for the various nodes
$xml_node = $xmlFile->createElement("node1");
$xml_node = $root->appendChild($xml_node);
$node1Text = $xmlFile->createTextNode($product->node1);
$node1Text = $xml_node->appendChild($node1Text);
// Re-save the xml file
$xmlFile->save("file.xml");
}
}
任何帮助将不胜感激 - 在此先感谢各位!
哦,我还简要地尝试了一些子类别的 foreach 循环,并为不同的子类别使用了 if 和 elseif,但得到了相同的结果..