2012-01-13 1 views
0

У меня проблема с смещениями, потому что, когда нет названия, вместо того, чтобы иметь <cd title="No Title">, у меня есть <cd>, в моем XML-файле.PHP: Как заполнить элемент моего объекта строкой?

Когда нет атрибута title, я хочу добавить строку «No Title» к элементу title моего объекта cd.

Пожалуйста, посмотрите на следующий код:

//SEEMS TO WORK 
foreach ($Steps as $step){ 
    $cd->SetCD($cdkey->nodeValue); 
    $titleQuery = './@title'; 
    $nullTitle = "No Title Listed"; 
    $areTitles = $xpath->query($titleQuery, $step); 
    //DOES NOT WORK 
    if (!$areTitles) 
    { 
    $entry->SetTitles($title->$nullTitle) 
    } 
    //END DOES NOT WORK 
    //WORKS 
    else{ 
    $entry->SetTitles($title->$titleQuery) 
    } 
} 

Как я могу изменить границы между //DOES NOT WORK и //END DOES NOT WORK, или остальной части кода, так что я получаю желаемый результат:

[title:Entry:private] => Array 
       (
        [0] => no title 
        [1] => no title 
        [2] => Bounce 
        [3] => Bound 
        [4] => Bounty 
       ) 

вместо:

[title:Entry:private] => Array 
       (
        [0] => Bounce 
        [1] => Bound 
        [2] => Bounty 
       ) 

?

спасибо.

ответ

2

DOMXPath::query() возвращает DOMNodeList поэтому ваше заявление

if (!$areTitles) 

никогда не будет вычисляться так.

Вместо этого попробуйте

if (0 == $areTitles->length) 
+0

Это работало. Он сделал выходные значения нулевыми. Это обрабатывается, поэтому это не является жизненно важным, но есть ли способ заполнить их строкой? –

+1

Правильный блок в основном проверяет, пуст ли массив, не так ли? –

+0

Понял, Фил, я изменил '$ title -> $ mystring' на' $ mystring' –

Смежные вопросы