Я не могу заставить работать оценщик XPath браузера, что очень расстраивает.Я почти уверен, что это проблема пространства имен, но я не уверен, что делаю неправильно.
У меня есть XML-документ .Я хочу выполнить запрос XPath, даже простой - //teiHeader
.Это правильный запрос, возвращающий все элементы с тегом teiHeader
.Документ содержит один такой элемент.
После анализа XML-документа я пытаюсь оценить выражение XPath следующим образом:
const resolver = doc.createNSResolver(doc.documentElement);
const xpathResult = doc.evaluate(xpath, doc, resolver);
let node = xpathResult.iterateNext();
while(node) {
console.log(node);
node = xpathResult.iterateNext();
}
В результате отсутствуют узлы, первый вызов iterateNext
возвращает ноль.
Вы можете посмотреть на эту скрипку , которая демонстрирует проблему.Вы увидите, что оценка XPath не вернула никаких элементов, но простой getElementsByTagName
завершился успешно.И Chrome, и Firefox ведут себя одинаково.
Что мне здесь не хватает?