diff options
| author | Michael Williamson <mike@zwobble.org> | 2013-04-27 17:04:37 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2013-04-27 17:04:37 +0100 |
| commit | edc871d3aa33bded7ee766a7374fcdbfe93a01bd (patch) | |
| tree | c4fc676f9c3d4f0bfdc0b6984c3da57581c787f2 /lib/xmlreader.js | |
| parent | 54c5c0ee38eb915275be4b0713fcaafb56033ac3 (diff) | |
Use getElementsByTagName for safer image parsing
Diffstat (limited to 'lib/xmlreader.js')
| -rw-r--r-- | lib/xmlreader.js | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/xmlreader.js b/lib/xmlreader.js index 08347c4..3b14a93 100644 --- a/lib/xmlreader.js +++ b/lib/xmlreader.js @@ -99,7 +99,20 @@ Element.prototype.first = function(name) { } Element.prototype.getElementsByTagName = function(name) { - return _.filter(this.children, function(child) { + var elements = _.filter(this.children, function(child) { return child.name == name; }); + return toElementList(elements); }; + +var elementListPrototype = { + getElementsByTagName: function(name) { + return toElementList(_.flatten(this.map(function(element) { + return element.getElementsByTagName(name); + }, true))); + } +}; + +function toElementList(array) { + return _.extend(array, elementListPrototype); +} |
