diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-02 14:16:09 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-02 14:16:09 +0000 |
| commit | 02ac29cbd29ff95c7174981edaea213e2b7315c7 (patch) | |
| tree | fcd1144db5822b164f010e3eebf7ab1adb244dec /src/main/java | |
| parent | ba3bb715394a03ea2320cc3679881a0f1548ed99 (diff) | |
Parse children of run
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/documents/RunElement.java | 15 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/docx/BodyXml.java | 17 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/documents/RunElement.java b/src/main/java/org/zwobble/mammoth/documents/RunElement.java new file mode 100644 index 0000000..3f80872 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/documents/RunElement.java @@ -0,0 +1,15 @@ +package org.zwobble.mammoth.documents; + +import java.util.List; + +public class RunElement implements DocumentElement { + private final List<DocumentElement> children; + + public RunElement(List<DocumentElement> children) { + this.children = children; + } + + public List<DocumentElement> getChildren() { + return children; + } +} diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXml.java b/src/main/java/org/zwobble/mammoth/docx/BodyXml.java index 7b3e74e..a8b7246 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXml.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXml.java @@ -1,16 +1,33 @@ package org.zwobble.mammoth.docx; +import com.google.common.collect.ImmutableList; import org.zwobble.mammoth.documents.DocumentElement; +import org.zwobble.mammoth.documents.RunElement; import org.zwobble.mammoth.documents.TextElement; import org.zwobble.mammoth.xml.XmlElement; +import org.zwobble.mammoth.xml.XmlNode; + +import java.util.List; + +import static com.google.common.collect.Iterables.filter; +import static com.google.common.collect.Iterables.transform; public class BodyXml { public static DocumentElement readBodyXmlElement(XmlElement element) { switch (element.getName()) { case "w:t": return new TextElement(element.innerText()); + case "w:r": + return new RunElement(readElements(element.children())); default: throw new UnsupportedOperationException(); } } + + private static List<DocumentElement> readElements(Iterable<XmlNode> nodes) { + return ImmutableList.copyOf( + transform( + filter(nodes, XmlElement.class), + BodyXml::readBodyXmlElement)); + } } |
