- From: Robin Berjon via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 21 Sep 2011 09:57:47 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2009/dap/ReSpec.js/js
In directory hutz:/tmp/cvs-serv31260/js
Modified Files:
respec.js
Log Message:
try to fix the XML serialiser
Index: respec.js
===================================================================
RCS file: /sources/public/2009/dap/ReSpec.js/js/respec.js,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -d -r1.167 -r1.168
--- respec.js 14 Sep 2011 15:03:45 -0000 1.167
+++ respec.js 21 Sep 2011 09:57:45 -0000 1.168
@@ -352,24 +352,18 @@
var ats = document.documentElement.attributes;
var prefixAtr = '' ;
- var hasxmlns = 0 ;
+ var hasxmlns = false;
for (var i = 0; i < ats.length; i++) {
var an = ats[i].name;
- if (an == "lang" ) {
- continue ;
- }
- if (an == "xmlns" ) {
- hasxmlns = 1;
- }
+ if (an == "lang") continue;
+ if (an == "xmlns") hasxmlns = true;
if (an == "prefix") {
prefixAtr = ats[i].value;
continue;
}
str += " " + an + "=\"" + this._esc(ats[i].value) + "\"";
}
- if (!hasxmlns) {
- str += ' xmlns="http://www.w3.org/1999/xhtml"';
- }
+ if (!hasxmlns) str += ' xmlns="http://www.w3.org/1999/xhtml"';
if (this.doRDFa) {
str += " xmlns:dcterms='http://purl.org/dc/terms/' xmlns:bibo='http://purl.org/ontology/bibo/' xmlns:foaf='http://xmlns.com/foaf/0.1/' xmlns:xsd='http://www.w3.org/2001/XMLSchema#'";
if (prefixAtr != '') {
@@ -381,13 +375,15 @@
}
}
}
-
str += ">\n";
// walk the entire DOM tree grabbing nodes and emitting them - possibly modifying them
// if they need the funny closing tag
var pRef = this ;
- var closers = [ "br", "img", "input", "area", "base", "basefont", "col", "isindex", "link", "meta", "param", "hr"] ;
- var dumpNode = function(node) {
+ var selfClosing = {};
+ "br img input area base basefont col isindex link meta param hr".split(" ").forEach(function (n) {
+ selfClosing[n] = true;
+ })
+ var dumpNode = function (node) {
var out = '' ;
// if the node is the document node.. process the children
if ( node.nodeType == 9 || ( node.nodeType == 1 && node.nodeName.toLowerCase() == 'html' ) ) {
@@ -398,54 +394,48 @@
out += dumpNode(children[i]) ;
}
}
- } else
- // if the node is an element, process it
- if ( node.nodeType == 1 ) {
+ }
+ // element
+ else if (1 === node.nodeType) {
var ename = node.nodeName.toLowerCase() ;
- var empty = 0 ;
- for (var i = 0; i < closers.length; i++) {
- if (ename == closers[i]) {
- empty = 1;
- }
- }
out += '<' + ename ;
- var attrs = node.attributes;
- var aLen = attrs.length ;
- if (aLen) {
- for (var i = 0; i < aLen; i++) {
- out += " " + attrs[i].name + "=\"" + pRef._esc(attrs[i].value) + "\"";
- }
+ for (var i = 0; i < node.attributes.length; i++) {
+ var atn = node.attributes[i]
+ out += " " + atn.name + "=\"" + pRef._esc(atn.value) + "\"";
}
- if (empty) {
+ if (selfClosing[ename]) {
out += ' />';
- } else {
- out += '>' ;
- if ( ename == 'pre' ) {
- out += "\n" + node.innerHTML;
- } else {
- var children = node.childNodes;
- var cLen = children.length ;
- if (cLen) {
- for (var i = 0; i < cLen; i++) {
- out += dumpNode(children[i]) ;
- }
- }
- }
- out += '</' + ename + '>' ;
}
- } else if (node.nodeType == 8 ) {
+ else {
+ out += '>';
+ // XXX removing this, as it does not seem correct at all
+ // if ( ename == 'pre' ) {
+ // out += "\n" + node.innerHTML;
+ // }
+ // else {
+ for (var i = 0; i < node.childNodes.length; i++) out += dumpNode(node.childNodes[i]);
+ // }
+ out += '</' + ename + '>';
+ }
+ }
+ // comments
+ else if (8 === node.nodeType) {
out += "\n<!-- " + node.nodeValue + " -->\n";
- } else {
- // otherwise, return the content of the node as a string
- out += node.nodeValue ;
}
- return out ;
+ // text or cdata
+ else if (3 === node.nodeType || 4 === node.nodeType) {
+ out += this._esc(node.nodeValue);
+ }
+ // we don't handle other types for the time being
+ else {
+ warning("Cannot handle serialising nodes of type: " + node.nodeType);
+ }
+ return out;
};
var node = document.documentElement;
str += dumpNode(document.documentElement) ;
str += "</html>";
return str;
-
},
toDiffHTMLSource: function () {
Received on Wednesday, 21 September 2011 09:57:50 UTC