Разбор XML в веб-работнике
Я использовал объект DOMParser для анализа текстовой строки в дерево XML. Однако он недоступен в контексте веб-работника (и, конечно же, не является document.ELEMENT_NODE или другими необходимыми константами). Есть ли другой способ сделать это?
Обратите внимание, что я не хочу манипулировать DOM текущей страницы. Файл XML не будет содержать элементов HTML или чего-либо подобного. На самом деле, я не хочу касаться объекта документа вообще. Я просто хочу предоставить текстовую строку, как показано ниже:
<car color="blue"><driver/></car>
... и вернуть подходящую древовидную структуру и способ пройти ее. Меня также не волнует проверка схемы или что-нибудь необычное. Я знаю о XML для ;, который многие могут найти полезным (поэтому я ссылаюсь на него здесь), однако его лицензирование не очень подходит для меня. Я не уверен, включает ли jQuery синтаксический анализатор XML (я довольно новичок в этом деле), но даже если он это делает (и его можно использовать внутри Worker), я бы не включил дополнительные ~50К строк кода только для эта функция.
Я полагаю, я мог бы написать простой синтаксический анализатор XML на JavaScript, мне просто интересно, если я пропустил более быстрый вариант.
2 ответа
Согласно спецификации
API-интерфейсы DOM (объекты Node, объекты Document и т. Д.) Недоступны работникам в этой версии данной спецификации.
Наверное, поэтому DOMParser недоступен, но я не совсем понимаю, почему это решение было принято. (извлечение и обработка XML-документа в WebWorker не кажется необоснованным)
но вы можете импортировать другие доступные инструменты: "Кроссплатформенный XML-анализ в JavaScript"
На данный момент я хотел бы поделиться своим парсером: https://github.com/tobiasnickel/tXml
с его методом tXml() вы можете проанализировать строку в объекте, и это займет всего 0.5kb minified + gzipped