Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > пустая строка тега в XML


Автор: zeltek 8.9.2011, 12:57
что-то я совсем запутался...  парсю xml
мне нужно узнать пустой ли тег D_END, если нет то вывести данные, но условие никак не хочет выполняться smile 
если выводить отдельно кол-во символов тега, то он вывод все правильно, к примеру 8, но тогда почему  не отрабатывает условие >=7 ?

Код

if ($item->nodeType == 1 && $item->nodeName == "D_END") {
              if (strlen($item->textContent) >= 7 ) $output .= $tm;
              
}

Автор: CruorVult 8.9.2011, 14:17
Что покажет:
Код

if ($item->nodeType == 1 && $item->nodeName == "D_END") {
echo strlen($item->textContent);
              if (strlen($item->textContent) >= 7 ) $output .= $tm;
              
}

Автор: zeltek 8.9.2011, 14:26
показует 00008888, т.е. 8-мь записей из них 4-ре с пустыми тегами, а 4-ре с записями по 8 символов

Автор: CruorVult 8.9.2011, 15:47
ну так 4 раза должна выполниться конкатенация, если $tm - не пуста

Автор: zeltek 8.9.2011, 15:56
все разобрался, проблемы были в том, что вывод строки нужно было сделать вне цикла.
спасибо за ответы. ниже привожу полный листинг, может кому-то пригодится в будущем
Код

foreach ($dom->documentElement->childNodes as $articles) {
    if ($articles->nodeType == 1 && $articles->nodeName == "row") {
     $tm ='';
        foreach ($articles->childNodes as $item) {
            if ($item->nodeType == 1 && $item->nodeName == "KOD_P") {
            $tm .= '<option value="';
            $tm .= $item->textContent . '">';
            $tm .= $item->textContent . '-';
            }
            if ($item->nodeType == 1 && $item->nodeName == "NAME_P") {
            $tm .= $item->textContent . '</option>';
            }
            if ($item->nodeType == 1 && $item->nodeName == "D_END") {
             $z = strlen($item->textContent);
            }
        }
        if ($z < 8 ) {$output .= $tm;}
    }
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)