From d5da134fe3107acc53987ed6ca89cefd72e0397e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 3 Jan 2016 10:58:44 +0000 Subject: Add reading of document.xml --- .../java/org/zwobble/mammoth/documents/Document.java | 11 +++++++++++ src/main/java/org/zwobble/mammoth/docx/BodyXml.java | 16 ++++++++-------- .../java/org/zwobble/mammoth/docx/DocumentXml.java | 18 ++++++++++++++++++ 3 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 src/main/java/org/zwobble/mammoth/documents/Document.java create mode 100644 src/main/java/org/zwobble/mammoth/docx/DocumentXml.java (limited to 'src/main/java') diff --git a/src/main/java/org/zwobble/mammoth/documents/Document.java b/src/main/java/org/zwobble/mammoth/documents/Document.java new file mode 100644 index 0000000..a31081a --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/documents/Document.java @@ -0,0 +1,11 @@ +package org.zwobble.mammoth.documents; + +import java.util.List; + +public class Document { + private final List children; + + public Document(List children) { + this.children = children; + } +} diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXml.java b/src/main/java/org/zwobble/mammoth/docx/BodyXml.java index 1796367..a394d97 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXml.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXml.java @@ -37,6 +37,14 @@ public class BodyXml { } } + public List readElements(Iterable nodes) { + return ImmutableList.copyOf( + concat( + transform( + filter(nodes, XmlElement.class), + this::readElement))); + } + private ParagraphElement readParagraph(XmlElement element) { return new ParagraphElement(readParagraphStyle(element), readElements(element.children())); } @@ -46,12 +54,4 @@ public class BodyXml { return properties.findChildOrEmpty("w:pStyle").getAttributeOrNone("w:val") .map(styleId -> styles.findParagraphStyleById(styleId).orElse(new Style(styleId, Optional.empty()))); } - - private List readElements(Iterable nodes) { - return ImmutableList.copyOf( - concat( - transform( - filter(nodes, XmlElement.class), - this::readElement))); - } } diff --git a/src/main/java/org/zwobble/mammoth/docx/DocumentXml.java b/src/main/java/org/zwobble/mammoth/docx/DocumentXml.java new file mode 100644 index 0000000..760f0a4 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/docx/DocumentXml.java @@ -0,0 +1,18 @@ +package org.zwobble.mammoth.docx; + +import org.zwobble.mammoth.documents.Document; +import org.zwobble.mammoth.xml.XmlElement; + +public class DocumentXml { + private final BodyXml bodyReader; + + public DocumentXml(BodyXml bodyReader) { + + this.bodyReader = bodyReader; + } + + public Document readDocumentXmlElement(XmlElement element) { + XmlElement body = element.findChild("w:body"); + return new Document(bodyReader.readElements(body.children())); + } +} -- cgit v1.2.3