Reading XML file using JQuery : 
In this following article we are going to see how we can read an XML file using 
JQuery. The JQuery AJAX API helps us to load data from the server without 
refreshing the page in the browser. Let us start by creating a simple XML file 
with some test data
We will name this file employees.xml
<employees>
  <employee>
    <firstname>abc</firstname>
    <lastname>abcd</lastname>  </employee>
  <employee>    <firstname>wxy</firstname>
    <lastname>wxyz</lastname>  </employee>
</employees> 
Now we create a new HTML file and add references to the JQuery library
  <head>
       
<script
type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
The ajax() method of the jquery helps us to send an ajax request to a particular 
resource. In this case, for reading an XML file, we are going to use 5 
parameters of Jquery Ajax.
- URL: This string 
specifies the URL to which request is sent
- type: This 
specifies the type of the request to be made ie either GET or POST. Default is 
GET.
- dataType: This 
specifies the type of data that is expected back from the server.x
- success: This 
specifies the function to be executed if the request succeeds
- error: This 
specifies the function to be executed if the request fails.
So let us 
start writing jquery code to request some XML data through AJAX and process the 
returned results.
<script
type="text/javascript">
         $(document).ready(function 
() {
    $.ajax({
        type:
"GET",
        url:
"employees.xml",
        dataType:
"xml",
        success:
function (data) {
            $(data).find('employee').each(function 
() {
                alert('Employee 
found');
            });
        },
        error:
function () {
            alert('Could 
not process the XML');
        }
    });
});
</script>
 
</script>Here you can that see we have filled in the details for all the 
parameters that we talked about. The URL contains the xml file name, dataType is 
XML, type of request is GET which is by default and we have written a success 
function and an error function.
Open this file in FIREFOX browser and you will get alert boxes for the 
number of employees in your XML file. Now try to open this page in the 
Internet Explorer, it will give you the error ie the alert which we have 
written in the ERROR parameter in Ajax request.
![fig1.gif]()
Why doesn't it work properly in IE ? This is because the data that is received 
through Ajax request gets loaded into IE as simple text. We need to convert this 
into XML to use it for further processing.
We make the following changes to our code.
FIX to make the code work in IE : 
For the dataType parameter we check if the browser is IE, we receive the data as 
TEXT
dataType: ($.browser.msie) ? "text" : "xml",
Our JQuery script changes to the below code 
<script
type="text/javascript">
         $(document).ready(function 
() {
   $.ajax({
|        type:
"GET",
        url:
"employees.xml",
        dataType: ($.browser.msie) 
? "text" : "xml",
        success:
function (data) {
           
var xml;
           
if (typeof data 
== "string") {
                xml =
new ActiveXObject("Microsoft.XMLDOM");
                xml.async =
false;
                
xml.loadXML(data);
            }
           
else {
                xml = data;
            }
            $(xml).find('employee').each(function 
() {
                alert('Employee 
found');
            });
        },
       error:
function () {            alert('Could 
not process the XML');
        }
    });
});
</script>
In the success function, we have checked if the received data is in the string 
format ie TEXT. If yes, we create an XML object and load the received data into 
it. If the received data is in XML format(in case of Firefox), we simply assign 
the data to the 'xml' object
The complete XML and HTML files are attached with this article.
References : 
http://api.jquery.com/jQuery.ajax/ 
http://www.newmediafun.com/2009/07/parsing-xml-with-jquery-in-internet-explorer/