Categories
Advertising
Automotive
Business
Computer
Games
Hardware
Software
Entertainment
Finance
Food
Health
Home & Family
Internet
Legal
Science
Self Improvement
Shopping
Society
Sports
Travel
Writing
Partners
Bags
Imprinted Knives
Knives
Promotional Coolers
Imprinted Balloons
Custom Note Cubes
Custom Imprinted Post it Notes
Promotional Golf
Custom Imprinted Lint Removers
Totes
Towels
Brief Bags
Promotional Business Gifts
Mousepads
Note Holders
Wood Pens
Can Holders
Custom Imprinted Sport Bottles
Auto Accessories
Imprinted Key Rings
|
IncredibleArticles.com - Computer - SoftwareSoftXMLLib - JavaScript XML Libraryby Incredible Articles - Last Modified: 11/14/2007 JAX is an acronym for Asynchronous JavaScript And XML.
AJAX is not a new programming language, but simply a new technique for creating better, faster, and more interactive web applications.
AJAX uses JavaScript to send and receive data between a web browser and a web server.
The AJAX technique makes web pages more responsive by exchanging data with the web server behind the scenes, instead of reloading an entire web page each time a user makes a change.
AJAX Is Based On Open Standards
AJAX is based on the following open standards:
* JavaScript
* XML
* HTML
* CSS
The open standards used in AJAX are well defined, and supported by all major browsers. AJAX applications are browser and platform independent. (Cross-Platform, Cross-Browser technology)
You Can Start Using AJAX Today
There is nothing new to learn.
AJAX is based on open standards. These standards have been used by most developers for several years.
Most existing web applications can be rewritten to use AJAX technology instead of traditional HTML forms.
AJAX Uses XML And HTTP Requests
A traditional web application will submit input (using an HTML form) to a web server. After the web server has processed the data, it will return a completely new web page to the user.
Because the server returns a new web page each time the user submits input, traditional web applications often run slowly and tend to be less user friendly.
With AJAX, web applications can send and retrieve data without reloading the whole web page. This is done by sending HTTP requests to the server (behind the scenes), and by modifying only parts of the web page using JavaScript when the server returns data.
XML is commonly used as the format for receiving server data, although any format, including plain text, can be used.
SoftXMLLib is a cross-browser JavaScript Library.
Any web developer dealing with XML data knows about hard job he must implement in order to make things working perfectly in all browsers.
At time I wrote this libriary, I thought that IE is only browser with true XPATH support but when I finished, my attitude to Mozilla browsers changed to good.
As a web developer, mostly client side scripting with advanced OOP JavaScript, I have been developing Ajax applications for IE.
All was good until clients began to request cross-browser support. As any programmer, I am lazy, so I decided to write such cross-browser libriary in order to make my life easier and help other developers who are looking for ready solutions.
You may ask me, why I did't use ready solutions like Sarrisa?
Pehaps I wanted to make things even easier, making web developer spending less time on programming and more to have a pleassure outside job.
Currently SoftXMLLib libriary API includes 9 methods and 6 properties to operate on XML Document.
Here I will give brief explanation on each:
Firstly include SoftXMLLib libriary into head section of your html file:
<script language="javascript" src= "SoftXMLLib.js"></script>
Create SoftXMLLib object:
var SoftXMLLib = new SoftXMLLib();
Methods
Example - load
SoftXMLLib.load("yourfile.xml")
if(SoftXMLLib.loadError!=0){
alert("XML file is invalid!");
return;
}
Loads given XML file.
Example - loadXML
var xmlString = "<root><company id="5">some text</company></root>";
SoftXMLLib.loadXML(xmlString)
if(SoftXMLLib.loadXMLError!=0){
alert("XML string is invalid!");
return;
}
Loads given XML string.
Example - selectNodes
When there is no default namespace in XML document
var xmlString = "<root><company id="2" name="Microsoft">some text</company></root>";
SoftXMLLib.loadXML(xmlString)
var xpath = "//company[@id='2']/@name";
matchedNodes = SoftXMLLib.selectNodes(xpath)
Selects nodes in loaded XML document that matched XPATH expression
In this example we select company's name where company id = 2
Only one node is returned by query, so we can access it like this:
alert(matchedNodes[0].attributes[0].name);
Will output Microsoft
alert(matchedNodes[0].self.getAttribute("name"));
Will output same as above Microsoft
When accessing attribute you can use one of following options:
attributes[0].attributename;
or
self.getAttribute("attributename")
When there is default namespace in XML document
Important note: Currently Opera does not support default namespace, so this query won't work
You have to set two properties in order to use xpath in Mozilla browsers
SoftXMLLib.setPrefix("xsl");
SoftXMLLib.setNameSpace("http://www.w3.org/1999/XSL/Transform");
var xmlString = "<xsl:root xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ><xsl:company id="1" idref="34_6"><xsl:name>Microsoft</xsl:name><xsl:location>USA</xsl:location></xsl:company><xsl:company id="2" idref="34_7"><xsl:name>Oracle</xsl:name><xsl:location>USA</xsl:location></xsl:company></xsl:root>";
SoftXMLLib.loadXML(xmlString)
var xpath = "//xsl:company";
matchedNodes = SoftXMLLib.selectNodes(xpath)
In this example we select all company nodes in loaded XML document
for(var i = 0;i < matchedNodes.length;i++){
//output value of id and idref attributes
alert(matchedNodes[i].attributes[0].id + "=" + matchedNodes[i].attributes[0].idref);
//will output 1 = 34_6 and 2 = 34_7
//output value of id attributes another approach
alert(matchedNodes[i].self.getAttribute("id"));
//will output 1 and 2
//output number of attributes for each company node
alert(matchedNodes[i].self.attributes.length);
//will output 2 and 2
//output tagName of current element
alert(matchedNodes[i].self.nodeName);
//will output xsl:company and xsl:company
//output data in childnodes of each company node
alert(matchedNodes[i].self.getElementsByTagName("name")[0].childNodes[0].nodeValue);
//will output Microsoft and Oracle
}
Now we will change our xpath expression:
var xpath = "//xsl:name";
matchedNodes = SoftXMLLib.selectNodes(xpath)
In this example we select all name nodes in loaded XML document
for(var i = 0;i < matchedNodes.length;i++){
//output text in name nodes
alert(matchedNodes[i].innerText);
//will output Microsoft and Oracle
}
Now we will get all attributes in document:
var xpath = "//@*";
matchedNodes = SoftXMLLib.selectNodes(xpath)
for(var i = 0;i < matchedNodes.length;i++){
//output attribute name and attribute value
alert(matchedNodes[i].self.nodeName + "=" + matchedNodes[i].self.nodeValue);
//will output id=1 , idref=34_6 , id=2 , idref=34_7
}
Example - getDocAttributes
This method returns all attributes found in XML document
matchedNodes = SoftXMLLib.getDocAttributes()
for(var i = 0;i < matchedNodes.length;i++){
//output attribute name and attribute value
alert(matchedNodes[i].nodeName + "=" + matchedNodes[i].nodeValue);
//will output id=1 , idref=34_6 , id=2 , idref=34_7
}
Example - getUniqueAttributes
This method returns only names of unique attributes found in XML document
matchedNodes = SoftXMLLib.getUniqueAttributes()
for(var i = 0;i < matchedNodes.length;i++){
//output attribute name
alert(matchedNodes[i].nodeName);
//will output id, idref
}
Example - getDocElements
This method returns names of all elements as they appear in XML document
matchedNodes = SoftXMLLib.getDocElements()
for(var i = 0;i < matchedNodes.length;i++){
//output element name
alert(matchedNodes[i].nodeName);
//will output xsl:company, xsl:name, xsl:location,.....
}
Example - getUniqueElements
This method returns names of unique elements in XML document
matchedNodes = SoftXMLLib.getUniqueElements()
for(var i = 0;i < matchedNodes.length;i++){
//output element name
alert(matchedNodes[i].nodeName);
//will output xsl:company, xsl:name, xsl:location
}
Example - Encode
This method returns ASC code of string passed to it char by char
Use this method with Ajax when you need to transfer content of xml tags in other then english language
var xmlString = '<root><company id="2" name="Microsoft">' + SoftXMLLib.Encode("not english text") + '</company></root>';
SoftXMLLib.loadXML(xmlString)
ajaxObj = SoftXMLLib.createAjaxObject();
ajaxObj.open("POST","http://www.yourserver.com/testAjax.asp",true);
ajaxObj.onreadystatechange=function() {
if (ajaxObj.readyState==4) {
alert(ajaxObj.responseText);
}
}
ajaxObj.send(softXMLLib.DOM);
In order to send XML data with XMLHTTP object you have to use DOM property of SoftXMLLib object
Example - Decode
This method returns string from ASC code passed to it
Use this method with Ajax when you need to get content of xml tags in other then english language
About the Author
Speciality:
Internet Programmer (6 years of experience
in scripting languages and VB ).
Education:
1992-1995: Bar-Ilan University, Ramat Gan.
Field of Specialization:
Operating Systems: Windows NT, Windows XP/2000.
Programming Languages: C#, VB, VBScript, JavaScript, TSQL, XML (DTD), XSL(XSLT,XPATH), DHTML, WML/Script, CSS
Technologies: COM+, ASP.NET, ADO.NET, ASP3, ADO2.5, OLEDB, ODBC.
Tools: MSSQL SERVER 7.0/2000, Apache
|
This article has been viewed 26 times. |
|
|