diff options
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java | 7 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java | 10 |
2 files changed, 17 insertions, 0 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 ac7521f..03eb668 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java @@ -90,6 +90,9 @@ public class BodyXmlReader { case "wp:anchor": return readInline(element); + case "w:sdt": + return readSdt(element); + case "w:ins": case "w:smartTag": case "w:drawing": @@ -418,6 +421,10 @@ public class BodyXmlReader { } } + private ReadResult readSdt(XmlElement element) { + return readElements(element.findChildOrEmpty("w:sdtContent").getChildren()); + } + private String relationshipIdToDocxPath(String relationshipId) { Relationship relationship = relationships.findRelationshipById(relationshipId); return "word/" + trimLeft(relationship.getTarget(), '/'); diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java index f67560c..91e6d43 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -33,6 +33,7 @@ import static org.zwobble.mammoth.internal.xml.XmlNodes.element; import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals; import static org.zwobble.mammoth.tests.ResultMatchers.hasWarnings; import static org.zwobble.mammoth.tests.ResultMatchers.isInternalResult; +import static org.zwobble.mammoth.tests.ResultMatchers.isInternalSuccess; import static org.zwobble.mammoth.tests.documents.DocumentElementMakers.*; import static org.zwobble.mammoth.tests.docx.BodyXmlReaderMakers.*; import static org.zwobble.mammoth.tests.docx.BodyXmlReaderMakers.NUMBERING; @@ -664,6 +665,15 @@ public class BodyXmlTests { } @Test + public void sdtIsReadUsingSdtContent() throws IOException { + XmlElement element = element("w:sdt", list(element("w:sdtContent", list(textXml("Blackdown"))))); + + assertThat( + readAll(a(bodyReader), element), + isInternalSuccess(deepEquals(list(text("Blackdown"))))); + } + + @Test public void appropriateElementsHaveTheirChildrenReadNormally() { assertChildrenAreReadNormally("w:ins"); assertChildrenAreReadNormally("w:smartTag"); |
