Использование пространства имен regexp из EXSLT в консоли браузера вызывает SyntaxError - PullRequest
0 голосов
/ 15 октября 2019

Я хочу использовать пространство имен regexp в своих выражениях XPath при поиске элементов в консоли браузера, но получаю SyntaxError: The expression is not a legal expression., пытаясь это сделать.

Я следовал http://help.dottoro.com/ljspsvcs.php в качестве учебного пособия по созданиюраспознаватель пространства имен.

Вот мой код:

function nsResolver (nsPrefix) {
    if (nsPrefix == "regexp") {
        return "http://exslt.org/regular-expressions";
    }
    return null;
}
document.evaluate('//a[regexp:test(@href, "qwerty-[\d]+$")]', document.documentElement, nsResolver, XPathResult.ANY_TYPE, null);

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 16 октября 2019

Тот факт, что кто-то определил набор функций расширения в определенном пространстве имен, не означает, что каждый процессор XSLT поддерживает эти функции. Здесь неправильно то, что вы используете древний процессор XSLT, который не обновлялся годами (поскольку производители браузеров потеряли интерес к сообществу пользователей XML).

Рассмотрите возможность установки Saxon-JS, который предоставляет XSLT 3.0работает в браузере, со встроенной поддержкой регулярных выражений в соответствии со спецификациями W3C. (Отказ от ответственности: это продукт моей компании).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...