Я новичок в использовании XPath, поэтому я обманывал с помощью XPath Evaluator, и я пытаюсь выяснить, как вернуть значение функции.Как вернуть результат функции с помощью XPath?
Если я хочу, чтобы вернуть href
S всех ссылок на странице, я могу использовать следующее XPath:
//a/@href
Если я хочу, чтобы вернуть все ссылки с href
сек больше, чем 20 символов я могу использовать это:
//a[string-length(@href) > 20]
То, что я не могу понять, как я могу получить только длины всех href
с? Моя наивным предположение, что это следует сделать это:
//a/string-length(@href)
Но это не удается (как и все вариации я мог думать о).
Как это можно сделать?
После того, как рыть в немного дальше я увидел, что в XPath оценщик я использовал жестко закодированы XPathResult.ORDERED_NODE_SNAPSHOT_TYPE
как тип результата, когда я изменил его на ANY_TYPE
(0) следующие работали для получения длины одного звена (это то, что мне действительно нужно)
string-length((//a)[1]/@href)
Я попробовал свое первое предложение (как часть * всех вариаций, о которых я мог думать *), и это не сработало. – Motti
Основываясь на других ответах, я решил, что это не так. Сожалею. Я не был уверен, что размещение функции вне запроса было одним из ваших многочисленных вариантов, поэтому я подумал, что это может быть один из тех вещей, которые «о духе». Из любопытства, на каком языке вы используете XPath со временем? PHP должно быть очень просто реализовать функцию циклирования с использованием расширения simplexml. – Anthony