From 2d51a2ad90d9910c93edc6b101563b996088a0c1 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 4 Oct 2016 22:12:00 +0100 Subject: Ignore run boolean elements that have value of false --- .../org/zwobble/mammoth/internal/docx/BodyXmlReader.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java index e4c5b5f..fdbeee1 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java @@ -146,19 +146,27 @@ public class BodyXmlReader { } private boolean isBold(XmlElementLike properties) { - return properties.hasChild("w:b"); + return readBooleanElement(properties, "w:b"); } private boolean isItalic(XmlElementLike properties) { - return properties.hasChild("w:i"); + return readBooleanElement(properties, "w:i"); } private boolean isUnderline(XmlElementLike properties) { - return properties.hasChild("w:u"); + return readBooleanElement(properties, "w:u"); } private boolean isStrikethrough(XmlElementLike properties) { - return properties.hasChild("w:strike"); + return readBooleanElement(properties, "w:strike"); + } + + private boolean readBooleanElement(XmlElementLike properties, String tagName) { + return properties.findChild(tagName) + .map(child -> child.getAttributeOrNone("w:val") + .map(value -> !value.equals("false") && !value.equals("0")) + .orElse(true)) + .orElse(false); } private VerticalAlignment readVerticalAlignment(XmlElementLike properties) { -- cgit v1.2.3