I am requesting and getting in the response of the XML HTTP request object
text that gets parsed correctly into XML (using Firefox). The
Firebug debugger shows
- I can traverse the document using firstChild, nextSibling properties
- DOM methods for the document object are present, but are not returning expected results
* I have the following code:
var docFrag = XmlHttpRequestObject.responseXML;
I then used it to get values from the debugger shown below
docFrag.documentElement: [DomNode] ajaxresponse
docFrag.getElementById("div1"): [null]
docFrag.documentElement.getElementById: [undefined]
docFrag.getElementById: [method (func ref)] getElementById()
x = docFrag.firstChild: [DomNode] ajaxresponse
x.nodeName: [string] "ajaxresponse"
x.nodeType: [number] 1
y = x.firstChild.firstChild: [DomNode] div
y.nodeName: [string] "div"
y.nodeType: [number] 1
y.getAttribute: [method (func ref)] getAttribute()
y.id: [undefined]
y.getAttribute("id"): [string] "div1"
The bracketed part is the Javascript type of the value returned
Note that there is a node (element div) with an id attribute of div1,
and there is a getElementById() method in the XML document object
(docFrag), as found by getAttribute() method on the node, but
getElementById() returns null.
Can anyone resolve these inconsistent expectations?
For additional information, I have provided the unformatted HTTP response
text and the parsed XML content below.
HTTP Response Text
XML as ParsedCode:<?xml version="1.0"?> <ajaxresponse><peptide><div id="div1" style="font:normal 90% 'Courier New',Tahoma,monospace;color:red;">
 This is the content of Div1. And just for variety, we include some complex
 elements like a <b>table</b> and a style attribute.
 <table><tr><th>Header 1 </th><th>Header 2
 </th></tr><tr><td>A table </td><td>with three cells </td><td>in a row
 </td></tr><tr><td colspan="3">Oh, and also with two rows, the 2nd with three column span
 </td></tr></table></div></peptide><metal><div id="div2">
 <p>
 A more modest DIV with a text containing a paragraph element
 </p></div></metal></ajaxresponse>
HTML Code:<ajaxresponse> <peptide> <div id="div1" style="font:normal 90% 'Courier New',Tahoma,monospace;color:red;"> This is the content of Div1. And just for variety, we include some complex elements like a <b>table</b> and a style attribute. <table> <tr> <th>Header 1 </th> <th>Header 2 </th> </tr> <tr> <td>A table </td> <td>with three cells </td> <td>in a row </td> </tr> <tr> <td colspan="3">Oh, and also with two rows, the 2nd with three column span </td> </tr> </table> </div> </peptide> <metal> <div id="div2"> <p> A more modest DIV with a text containing a paragraph element </p> </div> </metal> </ajaxresponse>


Reply With Quote
Bookmarks