aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-01-23 20:37:05 +0000
committerMichael Williamson <mike@zwobble.org>2017-01-23 20:37:05 +0000
commit2e819654db985bf8a7e7ed76e0a43dc2f46eec8d (patch)
tree94aced195e17040ef9e616c14f52c7ce89511ddd /src/main/java/org/zwobble/mammoth/internal/docx
parent933f21dd728976f1e64cf13b5de0558efaac2911 (diff)
Handle base-relative target URIs
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java4
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/Uris.java14
2 files changed, 16 insertions, 2 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 ec82930..4cbdda7 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
@@ -18,12 +18,12 @@ import java.util.function.Function;
import static org.zwobble.mammoth.internal.docx.ReadResult.EMPTY_SUCCESS;
import static org.zwobble.mammoth.internal.docx.ReadResult.success;
+import static org.zwobble.mammoth.internal.docx.Uris.uriToZipEntryName;
import static org.zwobble.mammoth.internal.util.Iterables.lazyFilter;
import static org.zwobble.mammoth.internal.util.Lists.list;
import static org.zwobble.mammoth.internal.util.Maps.entry;
import static org.zwobble.mammoth.internal.util.Maps.lookup;
import static org.zwobble.mammoth.internal.util.Sets.set;
-import static org.zwobble.mammoth.internal.util.Strings.trimLeft;
public class BodyXmlReader {
private static final Set<String> IMAGE_TYPES_SUPPORTED_BY_BROWSERS = set(
@@ -456,7 +456,7 @@ public class BodyXmlReader {
private String relationshipIdToDocxPath(String relationshipId) {
Relationship relationship = relationships.findRelationshipById(relationshipId);
- return "word/" + trimLeft(relationship.getTarget(), '/');
+ return uriToZipEntryName("word", relationship.getTarget());
}
private Optional<String> readVal(XmlElementLike element, String name) {
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Uris.java b/src/main/java/org/zwobble/mammoth/internal/docx/Uris.java
new file mode 100644
index 0000000..51dab9c
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/Uris.java
@@ -0,0 +1,14 @@
+package org.zwobble.mammoth.internal.docx;
+
+public class Uris {
+ private Uris() {
+ }
+
+ public static String uriToZipEntryName(String base, String uri) {
+ if (uri.startsWith("/")) {
+ return uri.substring(1);
+ } else {
+ return base + "/" + uri;
+ }
+ }
+}