Циклы XML и PHP

#php #xml

#php #xml

Вопрос:

У меня есть следующий код в PHP-файле при создании данных в XML-файле;

 //Check if a file exists
if (file_exists($filename)) 
    {
    //Define Variable
    $filename = date('Y-W').'.xml'; //2014-26.xml
    $xml = new DOMDocument;
    $xml->load($filename);



    $SequenceType = $xml->getElementsByTagName('SeqTp');
    foreach ($SequenceType as $Type) {
    if ($_POST['paymentsequence'] == 'RCUR' AND $Type->nodeValue == 'RCUR') {
    RCUR($filename);
    $RCURExists == 1;
    }
    elseif ($_POST['paymentsequence'] == 'FRST'  AND $Type->nodeValue == 'FRST') {
    FRST($filename);
    $FRSTExists == 1;
    }
    elseif ($_POST['paymentsequence'] == 'FNAL'  AND $Type->nodeValue == 'FNAL') {
    FNAL($filename);
    $FNALExists == 1;
    }
    elseif ($_POST['paymentsequence'] == 'OOFF'  AND $Type->nodeValue == 'OOFF') {
    OOFF($filename);
    $OOFFExists == 1;
    }
    }


    if ($OOFFExists != 1)  
    {
    // call xml appendFile function
        appendFile($filename);
    }
    elseif ($RCURExists != 1) 
    {
    // call xml appendFile function
        appendFile($filename);
        }
    elseif  ($FRSTExists != 1){
    // call xml appendFile function
        appendFile($filename);
    }
    elseif ($FNALExists != 1)
    {
    // call xml appendFile function
        appendFile($filename);
    }
    }
else 
    {
    // call xml createFile function
    createFile($filename);
    }
  

Код проверяет XML-файл, чтобы проверить, был ли определенный тип последовательности (например, RECUR) уже включен в файл. Но допустим, что тип последовательности «RECUR» указан первым в XML-файле, а далее — «FIRST». Когда код выполняется, он фокусируется на первом перечисленном типе последовательности (RECUR) и $RECURExists получает значение 1 (это то, что я хочу), но во втором цикле (поскольку в файле есть 2 типа последовательности) он не получает значение один, поскольку условие неверно .. есть предложения о том, как сохранить это значение?

Пример: Если ‘RCUR’ уже включен в XML-файл, я хочу добавить к нему данные (что делается путем вызова RCUR($filename) функции. Но если ‘RCUR’ еще не включен, я хочу вызвать appendFile($filename) функцию.

Комментарии:

1. Вы думаете о чем-то вроде: if (($_POST['paymentsequence'] == 'RCUR' AND $Type->nodeValue == 'RCUR') OR $RCURExists) ?

2. Извините, я на самом деле только что решил это после нескольких часов попыток, и это было так просто … if ($ _POST[‘paymentsequence’] == ‘RCUR’ И $Type-> nodeValue == ‘RCUR’) { RCUR($ filename); $ RCURExists = $ RCURExists 1;

3. Привет, @user3266484, это здорово — опубликовать и принять ответ на свой собственный вопрос!

4. вы издеваетесь? Я не знал ответа на вопрос, когда публиковал его. Очевидно. Я подумал, что если я добавлю ответ, когда найду его, это может помочь кому-то еще.

5.Я не саркащу. (Для этого даже есть значок.) meta.stackexchange.com/questions/12513 /… meta.stackexchange.com/questions/17845/…Пожалуйста, опубликуйте свой ответ ниже, для всеобщего блага.