aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-04-27 16:54:42 +0100
committerMichael Williamson <mike@zwobble.org>2013-04-27 16:54:42 +0100
commit54c5c0ee38eb915275be4b0713fcaafb56033ac3 (patch)
treeb4f08f49fb83dabbd4abbe89ace4f9e4a1dfc912 /lib
parentda8ef999085c7f229da25673a2b4fbf908c7a3f0 (diff)
Handle w:drawing elements with no children
Diffstat (limited to 'lib')
-rw-r--r--lib/document-xml-reader.js8
-rw-r--r--lib/xmlreader.js6
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/document-xml-reader.js b/lib/document-xml-reader.js
index 04eec21..a391a21 100644
--- a/lib/document-xml-reader.js
+++ b/lib/document-xml-reader.js
@@ -23,7 +23,7 @@ function DocumentXmlReader(relationships, docxFile) {
function readXmlElements(elements) {
var results = elements.map(readXmlElement);
- var values = _.pluck(results, "value").filter(notNull);
+ var values = _.flatten(_.pluck(results, "value"));
var messages = _.flatten(_.pluck(results, "messages"), true);
return new Result(values, messages);
}
@@ -35,12 +35,12 @@ function DocumentXmlReader(relationships, docxFile) {
return handler(element);
} else if (!Object.prototype.hasOwnProperty.call(ignoreElements, element.name)) {
return new Result(
- null,
+ [],
[warning("An unrecognised element was ignored: " + element.name)]
);
}
}
- return new Result(null);
+ return new Result([]);
}
var xmlElementReaders = {
@@ -105,7 +105,7 @@ function DocumentXmlReader(relationships, docxFile) {
},
"w:drawing": function(element) {
- return readXmlElement(element.first("wp:inline"));
+ return readXmlElements(element.children);
},
"wp:inline": function(element) {
var relationshipId = element
diff --git a/lib/xmlreader.js b/lib/xmlreader.js
index 3fde762..08347c4 100644
--- a/lib/xmlreader.js
+++ b/lib/xmlreader.js
@@ -97,3 +97,9 @@ Element.prototype.first = function(name) {
return child.name == name;
});
}
+
+Element.prototype.getElementsByTagName = function(name) {
+ return _.filter(this.children, function(child) {
+ return child.name == name;
+ });
+};