Dato un elemento DOM di un documento HTML, restituisce un oggetto XML rappresentante XHTML ben-formato. (Modificarlo in modo che dia anche in uscita un elemento DOM dovrebbe essere banale.)
Esempio
var node = document.body;
node.innerHTML; // -> '<BODY><IMG src="file.jpg"><P>hello,<BR>world</P></BODY>'
conv.htmlDOMToXHTML(node);
// -> <body xmlns="http://www.w3.org/1999/xhtml">
// <img src="file.jpg"/><p>hello,<br/>world</p></body>
Codice
function htmlDOMToXHTML = function(node) {
var self = arguments.callee;
switch(node.nodeType) {
case Node.ELEMENT_NODE:
var element = <{node.nodeName.toLowerCase()} xmlns={ns_xhtml}/>;
for(var attr = node.attributes[0], i=0; attr = node.attributes[i]; i++)
element['@' + attr.name] = attr.value;
var child = node.firstChild;
while(child) {
element.appendChild(self(child));
child = child.nextSibling;
}
return element;
break;
case Node.TEXT_NODE:
return node.textContent;
break;
default:
throw new Error('Unexpected. (' + node.nodeType + ')');
}
return undefined;
};
Info
- Licenza: GPL
- Origine: SamePlace