|
|
|
Товарищи, подскажите как Query составить. :)
|
|||
|---|---|---|---|
|
#18+
Ломаю голову уже полчаса - никак не могу найти приемлемый вариант.. Есть у меня XML-ка примерно такой структуры: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. field c id ='21' и значением '400' (все цифры взяты из головы). Я смог начертать нечто похожее: \/\/row[*/@id='21' and */text()='400']/field[@id='1'] Но этот запрос возвращает мне field[@id='1'] у row где любой field имеет значение '400'... :( Буду рад любому совету. :) Заранее - спасибо. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 14:27 |
|
||
|
Товарищи, подскажите как Query составить. :)
|
|||
|---|---|---|---|
|
#18+
Да, еще могу добавить, что row@id и field[@id='1']text() всегда одинаковые.. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 14:43 |
|
||
|
Товарищи, подскажите как Query составить. :)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 16:29 |
|
||
|
Товарищи, подскажите как Query составить. :)
|
|||
|---|---|---|---|
|
#18+
Nowhere_NoneДа, еще могу добавить, что row@id и field[@id='1']text() всегда одинаковые.. :) Ну а в таком случае можно написать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 16:38 |
|
||
|
Товарищи, подскажите как Query составить. :)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Гррр. :) Чую, что запрос совершенно правильный, но почему-то MSXML мне возвращает пустой обьект.. %( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 17:11 |
|
||
|
Товарищи, подскажите как Query составить. :)
|
|||
|---|---|---|---|
|
#18+
Уффф.. Методом проб и ошибок нашел правильный вариант: Код: plaintext 1. beard-electronic : Спасибо за подсказку! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 18:36 |
|
||
|
Товарищи, подскажите как Query составить. :)
|
|||
|---|---|---|---|
|
#18+
Nowhere_NoneЧую, что запрос совершенно правильный, но почему-то MSXML мне возвращает пустой обьект.. %( Странно - я протестил как раз MSXML 4.0... Тем более никаких отличий нет, за исключением заэскейпенных слешов (ну это от строкового типа языка зависит)... Ведь трансформатор должен приводить к числу, если оно есть в предикате, хотя можно написать и явно Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2006, 22:15 |
|
||
|
Товарищи, подскажите как Query составить. :)
|
|||
|---|---|---|---|
|
#18+
Вообще странная ситуация, согласен :) Я попробовал еще, но суть в том, что не работает с "/data". Я обращаюсь к XML c помощью JavaScript из IE 6.0 и FF 1.5. IE парсит XML с помощью MSXML, а FF - сам. Нашел вариант который работает в обоих браузерах (эскейпы убрал): "//row[field[@id='14' and .='302']]/field[@id='1']" Интересно что такое обращение: "//row[field[14] and .='302']]/field[@id='1']" работает только в FF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 14:19 |
|
||
|
Товарищи, подскажите как Query составить. :)
|
|||
|---|---|---|---|
|
#18+
/data - имется ввиду, что data - корневой элемент - я так решил исходя из вашего примера. Если это не так, то сработать и не должно. выражение //row выбирает элементы row, являющийся потомками корня документа. А //row[field[@id='14' and .='302']]/field[@id='1'] не есть тоже самое что //row[field[14] and .='302']]/field[@id='1'] В первом случае выбирается элемент field c атрибутом id равным 1, являющийся непосредственным потомком элемента row, который имеет сына field с id = 14 и значением 302. Во втором случае выбирается элемент field c атрибутом id равным 1, являющийся непосредственным потомком элемента row, у которого занчение - 302 и есть не менее 14 сыновей field (filed[14] - четырнадцатый элемент field). Так как по всей видимости у вас всегда field/@id в row идет по порядку начиная с 1-цы, то в предикате field[@id='14'] эквивалентно field[14], но [field[@id='14' and .='302']] не эквивалентно [field[14] and .='302']], так как в первом случае . - узел с field, а во втором - узел с row... А что значит работает только в FF? Выдает правильный результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 15:53 |
|
||
|
|

start [/forum/topic.php?fid=14&tid=1334710]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
155ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 448ms |

| 0 / 0 |
