Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Document Object Model
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Implementations== Because the DOM supports navigation in any direction (e.g., parent and previous sibling) and allows for arbitrary modifications, implementations typically buffer the document.<ref>{{Cite book|url=https://books.google.com/books?id=HuSQGrRY7F4C|title=Ajax Black Book, New Edition (With Cd)|last=Kogent Solutions Inc.|publisher=Dreamtech Press|year=2008|isbn=978-8177228380|pages=40}}</ref> However, a DOM need not originate in a serialized document at all, but can be created in place with the DOM API. And even before the idea of the DOM originated, there were implementations of equivalent structure with persistent disk representation and rapid access, for example [[DynaText]]'s model disclosed in <ref>{{cite patent| country = USA| number = 5557722A| invent1 = Steven DeRose| invent2 = Jeffrey Vogel| status = Expired| title = Data processing system and method for representing, generating a representation of and random access rendering of electronic documents | pubdate = 1996-09-17}}</ref> and various database approaches. ===Layout engines=== Web browsers rely on [[web browser engine|layout engine]]s to parse HTML into a DOM. Some layout engines, such as [[Trident (layout engine)|Trident/MSHTML]], are associated primarily or exclusively with a particular browser, such as Internet Explorer. Others, including [[Blink (layout engine)|Blink]], [[WebKit]], and [[Gecko (layout engine)|Gecko]], are shared by a number of browsers, such as [[Google Chrome]], [[Opera (web browser)|Opera]], [[Safari (web browser)|Safari]], and [[Firefox]]. The different layout engines implement the DOM standards to varying degrees of compliance. ===Libraries=== DOM implementations: * [[libxml2]] * [[MSXML]] * [[Apache Xerces|Xerces]] is a collection of DOM implementations written in C++, Java and Perl * [https://docs.python.org/3/library/xml.dom.html xml.dom] for [[Python (programming language)|Python]] * XML for <SCRIPT> is a JavaScript-based DOM implementation<ref>{{cite web|url=http://xmljs.sourceforge.net/|title=XML for <SCRIPT> Cross Platform XML Parser in JavaScript|access-date=23 September 2016}}</ref> * [https://github.com/PhpGt/Dom PHP.Gt DOM] is a server-side DOM implementation based on [[libxml2]] and brings DOM level 4 compatibility<ref>{{cite web|url=https://php.gt/dom#features-at-a-glance|title=The modern DOM API for PHP 7 projects|date=5 December 2021}}</ref> to the [[PHP]] programming language * [https://github.com/fgnass/domino/ Domino] is a Server-side (Node.js) DOM implementation based on Mozilla's dom.js. Domino is used in the [[MediaWiki]] stack with Visual Editor. * [https://github.com/wooly905/SimpleHtmlDom/ SimpleHtmlDom] is a simple HTML document object model in C#, which can generate HTML string programmatically. APIs that expose DOM implementations: * [[Java API for XML Processing|JAXP]] (Java API for XML Processing) is an API for accessing DOM providers * [[Lazarus (IDE)|Lazarus]] ([[Free Pascal]] IDE) contains two variants of the DOM - with UTF-8 and ANSI format Inspection tools: * [[DOM Inspector]] is a web developer tool
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)