używam xml reader, z kodem poniżej
CODE
while($reader->read()){
switch ($reader->localName) {
case "preSIEF":
if ($reader->hasAttributes){
$reader->moveToAttribute("id");
$substance[] = $reader->value;
$reader->moveToAttribute("creationDate");
$substance[] = $reader->value;
$reader->moveToAttribute("exportDate");
$substance[] = $reader->value;
}
break;
case "substanceIdentity":
while($reader->read()){
switch ($reader->name) {
case "ECIdentity":
if($reader->depth == '3'){
$reader->moveToFirstAttribute();
$substance[] = $reader->value;
$reader->moveToNextAttribute();
}
break;
case "name":
if($reader->depth == '4'){
$reader->read();
$substance[] = $reader->value;
}
break;
}
}
break;
}
}
switch ($reader->localName) {
case "preSIEF":
if ($reader->hasAttributes){
$reader->moveToAttribute("id");
$substance[] = $reader->value;
$reader->moveToAttribute("creationDate");
$substance[] = $reader->value;
$reader->moveToAttribute("exportDate");
$substance[] = $reader->value;
}
break;
case "substanceIdentity":
while($reader->read()){
switch ($reader->name) {
case "ECIdentity":
if($reader->depth == '3'){
$reader->moveToFirstAttribute();
$substance[] = $reader->value;
$reader->moveToNextAttribute();
}
break;
case "name":
if($reader->depth == '4'){
$reader->read();
$substance[] = $reader->value;
}
break;
}
}
break;
}
}
moim problemem jest to, ze nie wiem z jakiego powodu, ale petla 2 razy wpisuje mi to samo do macierzy, czyli np w $substance[1] = '111111' i w $substance[2] = '111111'
jak to obejsc?