One thing you might check is if your modifying the values of a loaded XML file. There is a security "feature" that acts much like a bug and invalidates variables pointing at contents fo the document.
Reassigning the references to the variables after changing values in the memory object of same tends to cure that issue. Guy Morton wrote: > We have found on anything but the smallest XML nodes that > getElementsByTagName sometimes fails to find nodes that our > replacement function finds 100% reliably. YMMV, but that's what we've > found and since this person is reporting an intermittent null object > error the symptoms match. > > I guess in the absence of any word back about this we'll never know > if getElementsByTagName was to blame in this case. > > Guy > > On 27/04/2007, at 1:53 AM, domenico_strazzullo wrote: > > >> Hum... to my experience getElementsByTagNameNS works very well in >> IE/ASV. There's a syntax error in the script but I suppose it's just a >> typo while pasting portions of the script, somehow? (It's always >> better to include scripts as they appear in the editor). I also >> suppose you're calling addGeom(node) from a for loop, so I think the >> architecture you're using is not safe, in that you are recursively and >> unnecessarily repopulating myTile. Worse for worse, declare it as >> global and push the new element. As a test, reading childNodes or >> hasChildNodes or myTile.length might very well give anarchic results. >> I would rather play it safe, i.e. append all the children first, and >> then execute the data conversions. And by the way, if "featureMember"s >> are the only children of 'xmlobjects' then you can skip creating >> myTyle altogether and just use xmlobjects.childNodes instead; why make >> a new large array when one exists already. The way it is now it should >> never work very well. >> >> >>> 99% fine. >>> >> What happens to the remaining 1%? (just kidding). >> >> Domenico >> >> >> --- In [email protected], Guy Morton <[EMAIL PROTECTED]> wrote: >> >>> getElementsByTagName is unreliable in IE/ASV. You haven't given a lot >>> of details but I suspect this is your problem. we had similar >>> problems and wrote a replacement function and the problem went away. >>> >>> Guy >>> >>> >>> On 25/04/2007, at 9:26 PM, krugerboy1971 wrote: >>> >>> >>>> I am trying to load some external GML map data into an SVG document >>>> - and it is working >>>> 99% fine. >>>> >>>> 1. It works perfectly in Firefox >>>> 2. It works in ASV - but I get intermittent error messages ('Object >>>> required') when calling >>>> the function sometimes. On some occasions, It'll load the same GML >>>> data just fine. >>>> >>>> It seems that, at some stage during the loop for svg polygon >>>> creation, ASV can't read the >>>> GML elements which have been loaded into the 'xmlobjects' <g> >>>> element. >>>> >>>> My code is below - anyone had anything similar happen? or any ideas >>>> why ASV is behaving >>>> so erratically? >>>> >>>> function addGeom(node) { >>>> clearXMLCache();//function to clear temporary area for GML loaded >>>> svgDoc.getElementById('xmlobjects'.appendChild(node)//puts new GML >>>> content in >>>> temporary area >>>> clearMapCache();//function clears out previous map geometry for the >>>> SVG >>>> pathBuilder();//function to convert GML data into SVG syntax >>>> } >>>> >>>> //MAIN function >>>> function pathBuilder() { >>>> var myData = svgDoc.getElementById('xmlobjects'); >>>> var TargetLayer = svgDoc.getElementById('gmlcontent'); >>>> >>>> var aID = new Array(); >>>> var aPaths = new Array(); >>>> var myTile = >>>> myData.getElementsByTagNameNS(gmlNS,"featureMember"); >>>> var myBBox = myData.getElementsByTagNameNS(gmlNS,"Box").item(0); >>>> var myBBoxData = myBBox.getElementsByTagNameNS >>>> (gmlNS,"coordinates").item(0).firstChild.data; >>>> var a = myBBoxData.split(","); >>>> var b = a[1].split(" "); >>>> var newX = a[0]; >>>> var newWidth=b[1]-a[0]; >>>> var newHeight=a[2]-b[0]; >>>> var tempy = parseInt(b[0])+parseInt(newHeight); >>>> var newY =-tempy; >>>> var newViewbox = newX+' '+newY+' '+newWidth+' '+newHeight; >>>> svgDoc.getElementById('mapwindow').setAttributeNS >>>> (null,'viewBox',newViewbox); >>>> nFeatures = myTile.length;//number of objects in the map data >>>> for (i=0;i<nFeatures;i++) { >>>> var myFeature = myTile.item(i); >>>> var myPathData = 'M';//starts a path element for a map >>>> feature >>>> var myCode = myFeature.getElementsByTagNameNS("http:// >>>> www.esri.com/WFS",'RESIDENCE').item(0).firstChild.data; >>>> var myPolygons = myFeature.getElementsByTagNameNS >>>> (gmlNS,'coordinates'); >>>> //inner loop to deal with multi-polygons and >>>> donuts - adds a >>>> 'moveto' command >>>> for (j=0;j<myPolygons.length;j++) { >>>> var myCoords = >>>> myPolygons.item(j).textContent; >>>> if (myCoords ==null) { >>>> myCoords = >>>> myPolygons.item(j).firstChild.data; >>>> } //End of if >>>> if (j>0) { >>>> myPathData = myPathData+' >>>> M'+myCoords; >>>> } else { >>>> myPathData = >>>> myPathData+myCoords; >>>> } //end of if >>>> } //End of inner for loop >>>> //close path and update path array >>>> myPathData = myPathData+'Z'; >>>> aID[i] = myCode; >>>> aPaths[i] = myPathData; >>>> } //end of outer for loop >>>> var newGroup = svgDoc.createElementNS('http://www.w3.org/2000/ >>>> svg',"g"); >>>> newGroup.setAttributeNS(null,'id','polygongroup'); >>>> TargetLayer.appendChild(newGroup); >>>> var PathTargetLayer = svgDoc.getElementById('polygongroup'); >>>> for (k=0;k<nFeatures;k++) { >>>> //CREATE PATH ELEMENT AND APPEND TO DOCUMENT >>>> var newPath = >>>> svgDoc.createElementNS('http://www.w3.org/2000/ >>>> svg',"path"); >>>> newPath.setAttributeNS(null,'d',aPaths[k]); >>>> newPath.setAttributeNS(null,'id','GML_'+aID[k]); >>>> PathTargetLayer.appendChild(newPath); >>>> } //End of for loop >>>> } //End of function >>>> >>>> >>>> >>>> >>>> ----- >>>> To unsubscribe send a message to: svg-developers- >>>> [EMAIL PROTECTED] >>>> -or- >>>> visit http://groups.yahoo.com/group/svg-developers and click "edit >>>> my membership" >>>> ---- >>>> Yahoo! Groups Links >>>> >>>> >>>> >>>> >> >> >> ----- >> To unsubscribe send a message to: svg-developers- >> [EMAIL PROTECTED] >> -or- >> visit http://groups.yahoo.com/group/svg-developers and click "edit >> my membership" >> ---- >> Yahoo! Groups Links >> >> >> >> > > > > ----- > To unsubscribe send a message to: [EMAIL PROTECTED] > -or- > visit http://groups.yahoo.com/group/svg-developers and click "edit my > membership" > ---- > Yahoo! Groups Links > > ----- To unsubscribe send a message to: [EMAIL PROTECTED] -or- visit http://groups.yahoo.com/group/svg-developers and click "edit my membership" ---- Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/svg-developers/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/svg-developers/join (Yahoo! ID required) <*> To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

