Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> xpath вызов параметра после выбора узла 
:(
    Опции темы
Alix36
Дата 10.8.2007, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: нет
Всего: 3



собственно где я опять что нето написал 
Код

foreach ($xml->xpath("/body/dialog[@step=$step/") as $operator) {
$func = $operator->xpath("nps/@say");
echo $func;
}

по логике мы вибираем нод , а затем повторным вызовом берем параметр. тока почемуто не ошибок не информации не выводит..


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
Golda
Дата 10.8.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 3
Всего: 42



скобку забыли закрыть, как минимум.

Код

$xml->xpath("/body/dialog[@step=$step]")



--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
Alix36
Дата 10.8.2007, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: нет
Всего: 3



это я при копировании потерял...

foreach ($xml->xpath("/body/dialog[@step=$step]/nps/@say") as $operator) {
$func = $operator;
echo $func;
}
Так работает верно
так не пашет
foreach ($xml->xpath("/body/dialog[@step=$step/*") as $operator) {
$func = $operator->xpath("nps/@say");
echo $func;
 хоть у бейте неврублюсь в чем тут дело


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
Golda
Дата 10.8.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 3
Всего: 42



  • Опять забыли закрыть квадратную скобку
  • звездочка в конце пути - лишняя (nps оказывается контекстным нодом, а Вы внутри него еще раз nps ищите
  • xpath() в любом случае вернет Вам массив, а не скалярное значение. Так что выводить его с помощью echo не стоит

Попробуйте так

Код

foreach ($xml->xpath("/body/dialog[@step=$step]") as $operator) {
  $func = $operator->xpath("nps/@say");
  echo $func[0];
}


P.S. ИМХО, если нет веских причин для выделения элемента $operator в отдельную переменную, то что можно сделать одним запросом, лучше делать одним, а не двумя


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
Alix36
Дата 10.8.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: нет
Всего: 3



1) "Опять забыли закрыть квадратную скобку" ну вот такой я косой  smile 
2)"xpath() в любом случае вернет Вам массив, а не скалярное значение. Так что выводить его с помощью echo не стоит" 
с массивом мы боремся через форыч дальше мы просто берем отдельный нод у записи массива.
3) "звездочка в конце пути - лишняя (nps оказывается контекстным нодом, а Вы внутри него еще раз nps ищите" 
СПАСИБО! огромное и нечеловеческое!  Жму + Пример работает как часы!!!
4)"P.S. ИМХО, если нет веских причин для выделения элемента $operator в отдельную переменную, то что можно сделать одним запросом, лучше делать одним, а не двумя"
Я привел не полный код, далеев Уже упомянутом ФорЫче(foreach) Следует еще несколько подобных строк
Код

$func = $operator->xpath("nps/@say");
  echo $func[0];
 
У всех данных "ближайший родственник(родитель )" НОД dialog а вот нод нпс уже не общий родитель поэтому приходиться таким способом выходить из сложившейся ситуации....
И вообще спасибо Вы самый Отзывчивый и самый терпеливый участник этого форума...(судя по моим темам...) 


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
Golda
Дата 10.8.2007, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 3
Всего: 42



всегда пожалуйста  smile 


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.