diff --git a/lib/OpenLayers/Format/XML.js b/lib/OpenLayers/Format/XML.js index e5c57ee267..e662e43617 100644 --- a/lib/OpenLayers/Format/XML.js +++ b/lib/OpenLayers/Format/XML.js @@ -493,7 +493,7 @@ OpenLayers.Format.XML = OpenLayers.Class(OpenLayers.Format, { if(options.attributes) { this.setAttributes(node, options.attributes); } - if(options.value) { + if(options.value != null) { node.appendChild(this.createTextNode(options.value)); } return node; diff --git a/tests/Format/XML.html b/tests/Format/XML.html index e58dace6e4..b3bdd9385d 100644 --- a/tests/Format/XML.html +++ b/tests/Format/XML.html @@ -591,6 +591,22 @@ value: "text value" }), expect: "text value<" + "/foo:FooNode>" + }, { + description: "value of 0 gets appended as a text node", + node: format.createElementNSPlus("foo:bar", {value: 0}), + expect: "0" + }, { + description: "value of false gets appended as a text node", + node: format.createElementNSPlus("foo:bar", {value: false}), + expect: "false" + }, { + description: "null value does not get appended as a text node", + node: format.createElementNSPlus("foo:bar", {value: null}), + expect: "" + }, { + description: "undefined value does not get appended as a text node", + node: format.createElementNSPlus("foo:bar"), + expect: "" } ];