From cb8360ca25dd74e3afa82fb5626df932f71013e8 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 18 Feb 2024 11:11:55 +0000 Subject: Throw error when failing to find the body element in a document --- .../org/zwobble/mammoth/internal/docx/DocumentXmlReader.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/main') diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentXmlReader.java index 25855f3..e2db2e7 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/DocumentXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/DocumentXmlReader.java @@ -5,9 +5,9 @@ import org.zwobble.mammoth.internal.documents.Document; import org.zwobble.mammoth.internal.documents.Notes; import org.zwobble.mammoth.internal.results.InternalResult; import org.zwobble.mammoth.internal.xml.XmlElement; -import org.zwobble.mammoth.internal.xml.XmlElementLike; import java.util.List; +import java.util.Optional; public class DocumentXmlReader { private final BodyXmlReader bodyReader; @@ -21,8 +21,13 @@ public class DocumentXmlReader { } public InternalResult readElement(XmlElement element) { - XmlElementLike body = element.findChildOrEmpty("w:body"); - return bodyReader.readElements(body.getChildren()) + Optional body = element.findChild("w:body"); + + if (!body.isPresent()) { + throw new IllegalArgumentException("Could not find the body element: are you sure this is a docx file?"); + } + + return bodyReader.readElements(body.get().getChildren()) .toResult() .map(children -> new Document(children, notes, comments)); } -- cgit v1.2.3