Home Python C Language C ++ HTML 5 CSS Javascript Java Kotlin SQL DJango Bootstrap React.js R C# PHP ASP.Net Numpy Dart Pandas Digital Marketing XML

XML DOM(Document Object Model):



XML DOM stands for XML Document Object Model. It's a programming interface for accessing and manipulating XML documents. In simple terms, you can think of XML DOM as a way to represent an XML document as a tree-like structure, where each element in the XML document is represented as a node in the tree.

Here's how XML DOM works:

  1. Parsing XML: First, you parse an XML document using a programming language like Python, JavaScript, or Java. The parsing process reads the XML document and creates a tree-like structure called the XML DOM.

  2. Tree Structure: The XML DOM represents the XML document as a tree structure, where each element, attribute, text node, and other XML constructs are represented as nodes in the tree.

  3. Accessing Nodes: Once the XML document is parsed and represented as a DOM tree, you can access and manipulate individual nodes in the tree using programming techniques. You can navigate the tree, access element attributes and text content, add new elements, remove elements, and modify existing elements.

  4. Traversal and Manipulation: You can traverse the DOM tree using methods like getElementsByTagName, getAttribute, firstChild, nextSibling, etc., to access specific nodes or elements. Once you have access to a node, you can manipulate its attributes, text content, or even add or remove child nodes.

Here's a simple example in Python using the ElementTree module to parse an XML document and access its elements using XML DOM:

        

Example

import xml.etree.ElementTree as ET # Parse the XML document tree = ET.parse('books.xml') root = tree.getroot() # Accessing nodes using DOM methods # Get all elements books = root.findall('book') # Iterate through each element for book in books: # Accessing attributes and text content category = book.get('category') title = book.find('title').text author = book.find('author').text year = book.find('year').text # Print the information print(f"Category: {category}, Title: {title}, Author: {author}, Year: {year}")

In this example, we parse an XML document called "books.xml" using ElementTree, access the root element of the XML document (root), and then use DOM methods like findall and find to access specific elements and attributes. Finally, we print out the information for each book in the XML document.

The XML DOM (Document Object Model)

XML DOM with a simple example:

Consider the following XML document:

        

Example

<bookstore> <book category="Fiction"> <title>The Great Gatsby</title> <author>F. Scott Fitzgerald</author> <year>1925</year> </book> <book category="Nonfiction"> <title>The Elements of Style</title> <author>William Strunk Jr. and E. B. White</author> <year>1918</year> </book> </bookstore>

Now, let's understand how this XML document is represented as a DOM tree:

  1. Root Node: The <bookstore> element is the root node of the XML document.

  2. Element Nodes: Each <book> element is represented as an element node in the DOM tree. These nodes are children of the <bookstore> node.

  3. Attribute Nodes: The category attribute of each <book> element is represented as an attribute node associated with the respective element node.

  4. Text Nodes: The text content within <title>, <author>, and <year> elements are represented as text nodes in the DOM tree.

So, the DOM tree representation of the XML document would look something like this

        

Example

bookstore (Element Node) ├── book (Element Node) [category="Fiction"] │ ├── title (Element Node) [Text Node: "The Great Gatsby"] │ ├── author (Element Node) [Text Node: "F. Scott Fitzgerald"] │ └── year (Element Node) [Text Node: "1925"] └── book (Element Node) [category="Nonfiction"] ├── title (Element Node) [Text Node: "The Elements of Style"] ├── author (Element Node) [Text Node: "William Strunk Jr. and E. B. White"] └── year (Element Node) [Text Node: "1918"]

Now, let's see how you can access and manipulate this DOM tree using JavaScript:

        

Example

// Parse the XML string var parser = new DOMParser(); var xmlDoc = parser.parseFromString(xmlString, "text/xml"); // Access the root element var bookstore = xmlDoc.documentElement; // Accessing individual elements var books = bookstore.getElementsByTagName("book"); for (var i = 0; i < books.length; i++) { var book = books[i]; var category = book.getAttribute("category"); var title = book.getElementsByTagName("title")[0].childNodes[0].nodeValue; var author = book.getElementsByTagName("author")[0].childNodes[0].nodeValue; var year = book.getElementsByTagName("year")[0].childNodes[0].nodeValue; // Printing information console.log("Category: " + category + ", Title: " + title + ", Author: " + author + ", Year: " + year); }

In this JavaScript example, we use the DOMParser to parse the XML string into a DOM document (xmlDoc). Then, we access the root element (bookstore) and iterate over the <book> elements. For each book, we extract the category, title, author, and year by navigating through the DOM tree and print out the information




Advertisement





Q3 Schools : India


Online Complier

HTML 5

Python

java

C++

C

JavaScript

Website Development

HTML

CSS

JavaScript

Python

SQL

Campus Learning

C

C#

java