[TIMOB-8551] iOS: XML: ownerDocument property is null for created nodes
| GitHub Issue | n/a |
|---|---|
| Type | Bug |
| Priority | High |
| Status | Closed |
| Resolution | Fixed |
| Resolution Date | 2012-08-01T22:38:19.000+0000 |
| Affected Version/s | Release 2.0.0 |
| Fix Version/s | Release 2.0.2, Release 2.1.0, Sprint 2012-09 API |
| Components | iOS |
| Labels | api, module_xml, qe-testadded |
| Reporter | Jeff English |
| Assignee | Vishal Duggal |
| Created | 2012-04-05T11:21:18.000+0000 |
| Updated | 2013-12-10T06:03:26.000+0000 |
Description
Attempting to access the 'ownerDocument' property of a created node (e.g. createElement, createElementNS) returns null rather than a valid document node.
When pulling in other open-source javascript libraries for various projects, some of them rely on the ownerDocument field, especially when creating new documents.
To reproduce, add the following code to an application and run:
var doc = Ti.XML.parseString('<?xml version="1.0"?><root><test>data</test></root>');
// The following retrieves the first node. The owner document will be valid and correct
var e1 = doc.firstChild;
var o1 = e1.ownerDocument;
// The following creates a new node. The owner document will be null
var e2 = doc.createElement("test");
var o2 = e2.ownerDocument;
Test code
var doc = Ti.XML.parseString('<?xml version="1.0"?><root><test>data</test></root>'); // The following retrieves the first node. The owner document will be valid and correct var e1 = doc.firstChild; // The following creates a new node. The owner document will be null var e2 = doc.createElement("test"); if (e1.ownerDocument == e2.ownerDocument) { Ti.API.info("Documents match PASS"); } else { Ti.API.info("Documents mismatch FAIL"); }Pull pending https://github.com/appcelerator/titanium_mobile/pull/2049
Tested with 2.0.2.v20120517141652 on iPhone 4s 5.1
Re-opening to edit label
Anvil testcase PR https://github.com/appcelerator/titanium_mobile/pull/5039