Я думаю, что DOM реализован на C ++ в большинстве браузеров.а DOM API выставляется пользователям через Javascript?
Может быть.Я уверен, что Internet Explorer использует MSXML для манипулирования DOM.Поскольку это набор COM компонентов, он доступен для использования на разных языках.Вполне вероятно, что эта реализация написана на C ++, но на самом деле это не имеет значения с точки зрения приложения.
Итак, что означает реализация DOM с использованием PHP / Java или даже Javascript?как сделал jsdom.
DOM - это рекомендуемый интерфейс прикладного программирования для работы с документами XML.Реализация DOM в основном означает реализацию XML-анализатора и библиотеки древовидной структуры, соответствующей этому интерфейсу.
Это API - соглашение.Это позволяет людям, знакомым с манипулированием DOM, «чувствовать себя как дома», когда они используют новую библиотеку.Обычно это происходит, когда вы используете другой язык (например, серверную Java, Python, Ruby и клиентский JavaScript), но может случиться, если вы начнете использовать другой проект на том же языке, но этот проект использует другую библиотеку.
Более конкретный вопрос: почему люди хотят повторно реализовать DOM, используя другие языки?
Потому что не все согласны с тем, какой язык программирования использовать.Если вам действительно нравится Haskell и вы решаете манипулировать документами в формате XML (т. Е. Сохранять данные или для связи с другим программным обеспечением, которое понимает XML - например, веб-скапинг), вам придется манипулироватьXML документы в Haskell.Затем вам понадобится библиотека для XML на Haskell.
Обратите внимание, что даже если бы люди договорились об одном языке программирования, вероятно, все равно было бы много разных библиотек, поскольку люди не соглашались бы по политическим соображениям, таким как программное обеспечение.вопросы лицензирования и стиль программирования, требуемые функции и т. д.