Unfortunately this does not work if the xml tag is 'image'. This is
because Element('image') creates an element that has no writable
innerHTML property (in I.E.).

Unfortunately, my xml input cannot be changed, but I can test on image
and make that imageX and in my javascript refer to imageX.

On 16 feb, 22:26, chone <[email protected]> wrote:
> this is the solution i used in my application
> use this Request.XML create the instance for request xml file
>
> Request.XML = new Class({
> Extends: Request,
> success: function(text, xml){
> if(Browser.Features.xpath) {
> xml.selectNodes = function(xpath){
> var nodes = [];
> var result = this.evaluate(xpath, this,
> this.createNSResolver(xml.documentElement),
> XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
> if (result){
> var node = result.iterateNext() ;
> while(node){
> nodes.push(node);
> node = result.iterateNext();}
> }
> return nodes;
> }
>
> xml.selectSingleNode = function(xpath){
> var result = this.evaluate(xpath, this,
> this.createNSResolver(this.documentElement), 9, null);
> if (result && result.singleNodeValue) return result.singleNodeValue ;
> else return [] ;}
> // ie
> }else {
>
> xml = this.createXML(xml.documentElement);}
>
> this.onSuccess(text, xml);},
>
>  createXML : function(xml, parent) {
> if(!$defined(parent)) {
> parent = new Element(xml.nodeName);}
>
> if (xml.childNodes.length) {
> for (var i = 0; i < xml.childNodes.length; i++) {
> if (xml.childNodes[i].nodeType == 1) { // Element type
> // NodeName
> var el = new Element(xml.childNodes[i].nodeName);
>  // Attributes
> if (xml.childNodes[i].attributes.length) {
> for (var j = 0; j < xml.childNodes[i].attributes.length; j++) {
> var property = xml.childNodes[i].attributes[j].nodeName;
> var value = xml.childNodes[i].attributes[j].nodeValue;
> el.setProperty(property, value);}
> }
>
>  // Value
> if (xml.childNodes[i].firstChild) {
> var text = xml.childNodes[i].firstChild.nodeValue;
>  if ($defined(text)){
> el.set('text', text);}
> }
>
>  parent.adopt(el);
>  var son = xml.childNodes[i];
> if (son.childNodes.length) {
> this.createXML(son, el);
>
> }
> }
> }
> }
> return parent;
> }
> });

Reply via email to