Computer Software
eg:
UK
or
Brides UK
or
Classical Art
or
Buy Music
or
Spirituality
Toggle navigation
eg:
UK
or
Brides UK
or
Classical Art
or
Buy Music
or
Spirituality
Business & Money
Technology
Women
Health
Education
Family
Travel
Cars
Entertainment
Featured Sites
SD Editorials
Online Guide and article directory site.
Foodeditorials.com
Over 15,000 recipes & editorials on food.
Lyricadvisor.com
Get 100,000 Lyric & Albums.
Video on SoftXMLLib - JavaScript XML Library
View:
Similar Videos
Currently No Video Available
SoftXMLLib - JavaScript XML Library
Gregory Movsesyan
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:
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 = "
id="5">some text";
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 = "
name="Microsoft">some text";
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 = "
>
idref="34_6">
Microsoft
USA
id="2"
idref="34_7">
Oracle
USA
";
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 = '
name="Microsoft">' + SoftXMLLib.Encode("not english
text") + '';
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
Next Paragraph..
A Guide to Business
|
Guide to Technology
|
Guide to Women
|
Guide to Health
|
Family Guide to
|
Travel & Vacations
|
Information on Cars