From 7295a5ed89196fc4360bc6ddf317dc26c1a5e144 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Sat, 9 Dec 2023 21:32:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/me/ag2s/epublib/epub/PackageDocumentReader.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/book/src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java b/modules/book/src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java index f5a8f429e..bdf9a9637 100644 --- a/modules/book/src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java +++ b/modules/book/src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java @@ -18,6 +18,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; import me.ag2s.epublib.Constants; import me.ag2s.epublib.domain.EpubBook; @@ -42,6 +43,7 @@ public class PackageDocumentReader extends PackageDocumentBase { private static final String TAG = PackageDocumentReader.class.getName(); private static final String[] POSSIBLE_NCX_ITEM_IDS = new String[]{"toc", "ncx", "ncxtoc", "htmltoc"}; + private static final Pattern namespaceRegex = Pattern.compile(" s?mlns=\""); public static void read( @@ -49,9 +51,8 @@ public class PackageDocumentReader extends PackageDocumentBase { Resources resources) throws SAXException, IOException { /*掌上书苑有很多自制书OPF的nameSpace格式不标准,强制修复成正确的格式*/ - String string = new String(packageResource.getData()) - .replace(" smlns=\"", " xmlns=\"") - .replace(" mlns=\"", " xmlns=\""); + String string = namespaceRegex.matcher(new String(packageResource.getData())) + .replaceAll(" xmlns=\""); packageResource.setData(string.getBytes()); Document packageDocument = ResourceUtil.getAsDocument(packageResource);