xpath - ограничить поиск узлом не работает? - PullRequest
2 голосов
/ 11 мая 2010

Что я здесь не так делаю? Я пытаюсь ограничить свой поиск по xpath определенной строкой в ​​моей таблице, но мой запрос всегда возвращает содержимое диапазона в первой строке:

var query = "//span[contains(@id, 'timer')]";
var root = document.getElementById('movements').rows[1];
document.evaluate(query, root, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.textContent

Пожалуйста, помогите!

Ответы [ 3 ]

2 голосов
/ 11 мая 2010
"//span[contains(@id, 'timer')]"

Проблема : Это абсолютное выражение XPath, и оно игнорирует тот факт, что вы оцениваете его из определенной строки.

Решение : Для достижения желаемого результата используйте:

.//span[contains(@id, 'timer')]

0 голосов
/ 11 мая 2010

Попробуйте вместо этого:

var query = "//td//span[contains(@id, 'timer')]";
0 голосов
/ 11 мая 2010

Вы получаете первый ряд:

var root = document.getElementById('movements').rows[1];

Это получит второй ряд:

var root = document.getElementById('movements').rows[2];

Вам необходимо указать правильный индекс нужной вам строки.

...