From 91933a7a595e05ef7b860fa0223d2fac16c81c80 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 4 Aug 2015 21:48:04 +0100 Subject: Handle numbering properties without w:ilvl or w:numId --- lib/docx/body-reader.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'lib/docx') diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js index 44ae038..25a263a 100644 --- a/lib/docx/body-reader.js +++ b/lib/docx/body-reader.js @@ -108,13 +108,7 @@ function BodyReader(options) { if (alignElement) { properties.alignment = alignElement.attributes["w:val"]; } - var numberingPropertiesElement = element.first("w:numPr"); - if (numberingPropertiesElement) { - var levelElement = numberingPropertiesElement.first("w:ilvl"); - var level = levelElement.attributes["w:val"]; - var numId = numberingPropertiesElement.first("w:numId").attributes["w:val"]; - properties.numbering = numbering.findLevel(numId, level); - } + properties.numbering = readNumberingProperties(element.firstOrEmpty("w:numPr")); return elementResult(properties); }, @@ -196,9 +190,20 @@ function BodyReader(options) { }; return { readXmlElement: readXmlElement, - readXmlElements: readXmlElements + readXmlElements: readXmlElements, + _readNumberingProperties: readNumberingProperties }; + function readNumberingProperties(element) { + var level = element.firstOrEmpty("w:ilvl").attributes["w:val"]; + var numId = element.firstOrEmpty("w:numId").attributes["w:val"]; + if (level === undefined || numId === undefined) { + return null; + } else { + return numbering.findLevel(numId, level); + } + } + function readDrawingElement(element) { var blips = element .getElementsByTagName("a:graphic") -- cgit v1.2.3