#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/…Пожалуйста, опубликуйте свой ответ ниже, для всеобщего блага.