DOM - Node Object Method - normalize


Advertisements

The method normalize adds all text nodes including attribute nodes which defines a normal form where structure of the nodes which contains elements, comments, processing instructions, CDATA sections, and entity references separates the text nodes i.e. neither adjacent Text nodes nor empty Text nodes.

Syntax

Following is the syntax for the usage of the normalize method.

nodeobject.normalize();

This method has no parameters and no return value.

Example

node.xml contents are as below −

<?xml version = "1.0"?>
<Company>
   <Employee category = "Technical">
      <FirstName>Tanmay</FirstName>
      <LastName>Patil</LastName>
      <ContactNo>1234567890</ContactNo>
      <Email>tanmaypatil@xyz.com</Email>
   </Employee>
   
   <Employee category = "Non-Technical">
      <FirstName>Taniya</FirstName>
      <LastName>Mishra</LastName>
      <ContactNo>1234667898</ContactNo>
      <Email>taniyamishra@xyz.com</Email>
   </Employee>
   
   <Employee category = "Management">
      <FirstName>Tanisha</FirstName>
      <LastName>Sharma</LastName>
      <ContactNo>1234562350</ContactNo>
      <Email>tanishasharma@xyz.com</Email>
   </Employee>
</Company>

Following example demonstrates the usage of the normalize method −

<!DOCTYPE html>
<html>
   <head>
      <script>
         function loadXMLDoc(filename) {
            if (window.XMLHttpRequest) {
               xhttp = new XMLHttpRequest();
            } else // code for IE5 and IE6 {
               xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhttp.open("GET",filename,false);
            xhttp.send();
            return xhttp.responseXML;
         }
      </script>
   </head>
   <body>
      <script>
         xmlDoc = loadXMLDoc("/dom/node.xml");
         x = xmlDoc.createElement('Employee');
         x.appendChild( document.createTextNode("EmployeeA ") );
         x.appendChild( document.createTextNode("EmployeeB ") );

         document.write("<b>Before normalize</b><br>");
         document.write("<b>Child node length: </b>"+x.childNodes.length+"<br>");
         document.write("<b>First child node: </b>"+x.childNodes[0].textContent+"<br>");
         document.write("<b>Second child node: </b>"+x.childNodes[1].textContent+"<br>");

         x.normalize();
         document.write("<b>After normalize</b><br>");
         document.write("<b>Child node length: </b>"+x.childNodes.length+"<br>");
         document.write("<b>First child node: </b>"+x.childNodes[0].textContent+"<br>");
      </script>
   </body>
</html>

Execution

Save this file as nodemethod_normalise.htm on the server path (this file and node.xml should be on the same path in your server). We will get the output as shown below −

Before normalize
Child node length: 2
First child node: EmployeeA
Second child node: EmployeeB
After normalize
Child node length: 1
First child node: EmployeeA EmployeeB 
dom_node_object.htm
Advertisements