2014-10-20 3 views
0

Я использую Java Scripting API, который работает достаточно хорошо. Теперь у меня есть функция, где я хочу получить все теги <a> из String, а затем добавлять/удалять атрибуты перед возвратом управляемой строки. Проблема, конечно, в том, что я не могу просто использовать document.getElementsByTagName. Есть ли какой-нибудь простой вариант, который приходит вам на ум, не проходя через regex-hell?Манипулирование HTML-узлами с помощью java-скриптов java-скриптов API

Обратите внимание, что в настоящее время я работаю на Java 7 (с Rhino), планируя обновление до Java 8 (с помощью Nashorn), поэтому я не хочу использовать какие-либо API-интерфейсы Rhino.

ответ

1

В книге «Изучение шаблонов проектирования JavaScript» Адди Османи автор упоминает 3 альтернативы аналогичной проблеме, очевидно, что getElementById() является самым быстрым.

Отрывок из книги:

Представьте себе, что у нас есть сценарий, где для каждого элемента DOM найти на странице с классом «Foo» мы хотим, чтобы увеличить счетчик. Какой самый эффективный способ запроса этой коллекции элементов? Ну, есть несколько различных способов, эта проблема может быть решена:

  • Выбрать все элементы на странице, а затем ссылки магазин для них. Затем отфильтруйте эту коллекцию и используйте регулярные выражения (или другое средство) для хранения только тех, у кого есть класс «foo».
  • Используйте современные встроенные функции браузера, такие как querySelectorForAll(), чтобы выбрать все элементы с классом «foo».
  • Используйте netive функции, такие как getElementsByClassName() аналогичны ...

Другим путем, так как вы используете Насхорн/Rhino, вы можете использовать реализацию Java библиотеки в Xerces манипулировать DOM ,

Надеюсь, это поможет вам найти решение.

 Смежные вопросы

  • Нет связанных вопросов^_^