aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-03 10:58:44 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-03 10:58:44 +0000
commitd5da134fe3107acc53987ed6ca89cefd72e0397e (patch)
tree7d318a6b260c62916c31686f0c45113f23e47418 /src/main/java/org
parent77cc4cba4a6adf6fa35513c9700b745139dba12b (diff)
Add reading of document.xml
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/Document.java11
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/BodyXml.java16
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/DocumentXml.java18
3 files changed, 37 insertions, 8 deletions
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<DocumentElement> children;
+
+ public Document(List<DocumentElement> 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<DocumentElement> readElements(Iterable<XmlNode> 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<DocumentElement> readElements(Iterable<XmlNode> 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()));
+ }
+}