Side navigation
Ticket #3811: xml.js
File xml.js, 2.5 KB (added by SineSwiper, January 12, 2009 06:23PM UTC)
Example XML code
///////////////////
// XML prototyping
// These should be ported into jQuery in some way...
function createXML (rName) {
if (document.implementation && document.implementation.createDocument) {
// Gecko-based browsers: Firefox, Safari, Opera, etc.
xmlDoc = document.implementation.createDocument("",rName,null);
xmlDoc.async = 'false';
return xmlDoc;
}
else if (window.ActiveXObject) {
// Internet Explorer
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
var root = xmlDoc.createElement(rName);
xmlDoc.documentElement = root;
return xmlDoc;
}
else {
alert("Browser incompatibility: createXML");
}
return undefined;
}
function parseXML (xmlStr) {
if (window.DOMParser) {
// Gecko-based browsers: Firefox, Safari, Opera, etc.
xmlDoc = (new DOMParser()).parseFromString(xmlStr, "text/xml");
return xmlDoc;
}
else if (window.ActiveXObject) {
// Internet Explorer
xmlDoc = document.createXML();
xmlDoc.loadXML(xmlStr);
return xmlDoc;
}
else {
alert("Browser incompatibility: parseXML");
}
return undefined;
}
function serializeXML (xmlDoc) {
if (window.XMLSerializer) {
// Gecko-based browsers: Firefox, Safari, Opera, etc.
try { // might get tripped up on ?xml tags
return XML((new XMLSerializer()).serializeToString(xmlDoc)).toXMLString();
}
catch (e) {
return (new XMLSerializer()).serializeToString(xmlDoc);
}
}
else if (xmlDoc.xml) {
// Internet Explorer
try { // in case the ActiveX Objects don't exist
var reader = new ActiveXObject("Msxml2.SAXXMLReader.4.0");
var writer = new ActiveXObject("Msxml2.MXXMLWriter.4.0");
writer.indent = true;
writer.standalone = true;
reader.contentHandler = writer;
reader.putProperty("http://xml.org/sax/properties/lexical-handler", writer);
reader.parse(xmlDoc);
return writer.output;
}
catch (e) {
return xmlDoc.xml.replace(/>(?=<\/?\w+)/g, ">\n");
}
}
else {
alert("Browser incompatibility: serializeXML");
}
return undefined;
}
// Quick fix for creating nodes
// (there should be a way of being able to do this without the
// 2nd parameter, the XML main element)
jQuery.cXML = function (n, x) { return jQuery(x.createElement(n)); }
Download in other formats:
Original Format
File xml.js, 2.5 KB (added by SineSwiper, January 12, 2009 06:23PM UTC)
Example XML code
///////////////////
// XML prototyping
// These should be ported into jQuery in some way...
function createXML (rName) {
if (document.implementation && document.implementation.createDocument) {
// Gecko-based browsers: Firefox, Safari, Opera, etc.
xmlDoc = document.implementation.createDocument("",rName,null);
xmlDoc.async = 'false';
return xmlDoc;
}
else if (window.ActiveXObject) {
// Internet Explorer
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
var root = xmlDoc.createElement(rName);
xmlDoc.documentElement = root;
return xmlDoc;
}
else {
alert("Browser incompatibility: createXML");
}
return undefined;
}
function parseXML (xmlStr) {
if (window.DOMParser) {
// Gecko-based browsers: Firefox, Safari, Opera, etc.
xmlDoc = (new DOMParser()).parseFromString(xmlStr, "text/xml");
return xmlDoc;
}
else if (window.ActiveXObject) {
// Internet Explorer
xmlDoc = document.createXML();
xmlDoc.loadXML(xmlStr);
return xmlDoc;
}
else {
alert("Browser incompatibility: parseXML");
}
return undefined;
}
function serializeXML (xmlDoc) {
if (window.XMLSerializer) {
// Gecko-based browsers: Firefox, Safari, Opera, etc.
try { // might get tripped up on ?xml tags
return XML((new XMLSerializer()).serializeToString(xmlDoc)).toXMLString();
}
catch (e) {
return (new XMLSerializer()).serializeToString(xmlDoc);
}
}
else if (xmlDoc.xml) {
// Internet Explorer
try { // in case the ActiveX Objects don't exist
var reader = new ActiveXObject("Msxml2.SAXXMLReader.4.0");
var writer = new ActiveXObject("Msxml2.MXXMLWriter.4.0");
writer.indent = true;
writer.standalone = true;
reader.contentHandler = writer;
reader.putProperty("http://xml.org/sax/properties/lexical-handler", writer);
reader.parse(xmlDoc);
return writer.output;
}
catch (e) {
return xmlDoc.xml.replace(/>(?=<\/?\w+)/g, ">\n");
}
}
else {
alert("Browser incompatibility: serializeXML");
}
return undefined;
}
// Quick fix for creating nodes
// (there should be a way of being able to do this without the
// 2nd parameter, the XML main element)
jQuery.cXML = function (n, x) { return jQuery(x.createElement(n)); }