Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: X технологии > доступ к узлу через document() и [] |
Автор: flashaa 23.9.2007, 12:40 | ||||||||
Здравствуйте ! Такая трудность: Разбираю свое дерево, в одном из узлов которого есть аттрибут @param = x, где x = a, b,c (для данного примера). Есть ещё XML-документ, в котором хранятся, так сказать, адаптированные значения параметра param.
Мне нужно из этого документа получить строку "Это значение х" в зависимости от значения @param в моем дереве. По идее, должно быть вот так:
Но вышеприведенный код не работает! Сейчас реализовано через перебор всех узлов в params:
Cогласитесь, нехорошо перебирать все, если нужен один элемент. Помогите. Добавлено @ 12:45 Сам отвечаю на свой вопрос: скрестил два подхода и получилось работающее решение:
Т.е. сравниваю с переменной, отсюда следует, что document(), либо [] меняют текущий узел |
Автор: IZ@TOP 27.9.2007, 14:14 | ||
Для сравнений значений текущего узла (в контексте которого мы работаем) при обращении к другим узлам, необходимо использовать метод current:
Если я не ошибаюсь. А в вашем примере, условие будет выполнено в случае совпаления имени тега и атрибута @param в узле "document('params.xml')/params/*". Вариант с переменной тоже вполне рабочий. |