Hallo Zusammen, ich brauche dringend Hilfe!
Habe ein XML File welches ich als String in einer Variable gespeichert habe und möchte das mit PHP so verarbeiten, dass ich es sauber in einer DB speichern kann.
Dazu habe ich folgende Funktion geschrieben:
Hier noch ein Blick auf das XML. Das XML wird dynamisch erzeugt und kann beliebig viele STEPS mit beliebig vielen CONDITIONS besitzen:
!!! Jetzt mein Problem: Wenn ich dsämtlichen Inhalt innerhalb der Schlaufe
ausklammere, wird die Schlaufe 4 mal durchloffen (Einmal für Name, einmal für Description und je einmal für die beiden Steps). Da ich nun mit der zweiten foreach Schlaufe die jeweiligen CONDITIONS der STEPS ausgeben will kommt es zum Problem. Die Condition zu den jeweiligen steps werden zwar richtig ausgegeben, jedoch wird die Hauptschlaufe nicht mehr 4 sondern 5mal durchloffen, was natürlich zu einem Fehler führt.
Kann mir jemand sagen warum die Haupt-Foreach Schlaufe plötzlich zu oft durchlaufen wird? Wie kann ich das lösen?
Wer kann mir helfen, ist echt dringend und ich weiss nicht mehr weiter!!! Liebe Grüsse aus der Schweiz!
Vielen Dank !!!
Habe ein XML File welches ich als String in einer Variable gespeichert habe und möchte das mit PHP so verarbeiten, dass ich es sauber in einer DB speichern kann.
Dazu habe ich folgende Funktion geschrieben:
PHP-Code:
function instantiate_tp_from_xml($xml_string)
{
$levelCounter = 0;
$stepCounter = 0;
$xml_object = simplexml_load_string( $xml_string);
foreach ($xml_object as $step)
{
if ($levelCounter==0 ) // 1st-level information = name of tp
{
echo $xml_object->NAME."<br>";
}
elseif ($levelCounter==1) // 2nd-level information = description
{
echo $xml_object->DESCRIPTION."<br>";
}
else // all other levels are STEPS
{
echo $xml_object->STEP[$stepCounter]->NAME."<br>";
echo $xml_object->STEP[$stepCounter]->DESCRIPTION."<br>";
echo $xml_object->STEP[$stepCounter]->FLOWNAME."<br>";
$conditionCounter = 0;
// give me your conditions
foreach ($xml_object->STEP[$stepCounter]->CONDITION as $condition)
{
echo $xml_object->STEP[$stepCounter]->CONDITION
$conditionCounter]->OBSERVATIONSTEP."<br>";
echo $xml_object->STEP[$stepCounter]->CONDITION
[$conditionCounter]->ORDER."<br>";
$conditionCounter++;
}
$stepCounter++;
}
}
$levelCounter++;
}
Code:
<?xml version="1.0" encoding="ISO-8859-1"?> <TESTPROCESS> <NAME>Test1</NAME> <DESCRIPTION>Description1</DESCRIPTION> <STEP> <NAME>StepName1</NAME> <DESCRIPTION>StepDescription1</DESCRIPTION> <FLOWNAME>StepFlowname1</FLOWNAME> <STEPNAME>StepStepname1</STEPNAME> <OPCODE>StepOpcode1</OPCODE> <DIRECTION>StepDirection1</DIRECTION> <CONDITION> <OBSERVATIONSTEP>dgdgdg2</OBSERVATIONSTEP> <FCTCONDITION>Condition02</FCTCONDITION> <VALUE>ConditionValue2</VALUE> <ORDER>2</ORDER> </CONDITION> </STEP> <STEP> <NAME>StepName1</NAME> <DESCRIPTION>StepDescription1</DESCRIPTION> <FLOWNAME>StepFlowname1</FLOWNAME> <STEPNAME>StepStepname1</STEPNAME> <OPCODE>StepOpcode1</OPCODE> <DIRECTION>StepDirection1</DIRECTION> <CONDITION> <OBSERVATIONSTEP>dgdgdg</OBSERVATIONSTEP> <FCTCONDITION>Condition01</FCTCONDITION> <VALUE>ConditionValue01</VALUE> <ORDER>1</ORDER> </CONDITION> <CONDITION> <OBSERVATIONSTEP>dgdgdg</OBSERVATIONSTEP> <FCTCONDITION>Condition01</FCTCONDITION> <VALUE>ConditionValue01</VALUE> <ORDER>1</ORDER> </CONDITION> <CONDITION> <OBSERVATIONSTEP>dgdgdg3</OBSERVATIONSTEP> <FCTCONDITION>Condition03</FCTCONDITION> <VALUE>ConditionValue03</VALUE> <ORDER>3</ORDER> </CONDITION> </STEP> </TESTPROCESS>
PHP-Code:
foreach ($xml_object as $step)
Kann mir jemand sagen warum die Haupt-Foreach Schlaufe plötzlich zu oft durchlaufen wird? Wie kann ich das lösen?
Wer kann mir helfen, ist echt dringend und ich weiss nicht mehr weiter!!! Liebe Grüsse aus der Schweiz!
Vielen Dank !!!
Kommentar