2012-12-01 3 views
0

현재 PHP를 사용하여 하나의 XML 파일을 여러 개의 작은 파일로 분할하고 있습니다. 이렇게하려면 제목 배열에서 새 xml 파일을 만든 다음 foreach 루프를 사용하여 원본 xml 파일을 탐색하고 if 문을 사용하여 각 '제품'의 '하위 범주'가 관련 파일을 작성한 다음 if 문에서 관련 데이터를 추가하십시오.이전 foreach 루프의 데이터를 유지하는 XML 파일의 여러 PHP foreach 루프

제 문제는 관련 데이터만으로 첫 번째 파일이 잘 나옵니다. 그러나 그 이후에는 각각의 파일에 채워진 이전 파일의 데이터와 자체 데이터가 있습니다.

아래의 코드는 여기에서 작동하는 것을 보여줍니다. 현재 각 하위 범주에 대해 별도의 foreach 루프가 있지만 여기에서는 왜 subcategory3에 대한 검색이 subcategory1, subcategory2 및 subcategory3을 선택하는지 알 수 없습니다. m은 아마 상당히 분명 뭔가 빠진) ...

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 루프를 시도하고 경우 다른 하위 범주에 대한 ELSEIF 사용하지만, 같은 결과를 얻었다

답변

0

좋아, 난 그냥 뭔가가 무작위 시도하여 그것을 해결 - I foreach 루프를 사용하기 전에 foreach를 사용하여 새 xml 파일을 만든 다음 xml 데이터를 추출합니다. 그러나 파일을 생성하기 위해 루프를 제거하고 루프를 분리하기 전에 데이터를 추출하면 문제가 사라졌습니다. 그것은 내 머리 속에는 논리적으로 보이지 않지만 그것이 분명히 그 모습입니다!