私は現在、PHPを使用して1つの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を使用しましたが、同じ結果が得られました。