diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java | 16 |
1 files changed, 12 insertions, 4 deletions
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) { |
