diff --git a/bonus-modules/bonus-smart-canteen/pom.xml b/bonus-modules/bonus-smart-canteen/pom.xml
index 49415fd..0d2d807 100644
--- a/bonus-modules/bonus-smart-canteen/pom.xml
+++ b/bonus-modules/bonus-smart-canteen/pom.xml
@@ -198,6 +198,12 @@
compile
+
+ org.jsoup
+ jsoup
+ 1.17.2
+
+
com.arcsoft.face
arcsoft-sdk-face
diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java
index f337fec..8e7d8d6 100644
--- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java
+++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java
@@ -1,15 +1,11 @@
package com.bonus.canteen.core.common.utils;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.core.util.XmlUtil;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
import lombok.Generated;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
import java.util.function.Function;
public class RichTextUtil {
@@ -17,42 +13,23 @@ public class RichTextUtil {
private static final Logger log = LoggerFactory.getLogger(RichTextUtil.class);
public static String getCutFileUrl(String richText) {
- return parseXml(richText, FileUrlUtil::getFileUrl);
+ return parseXml(richText);
}
- private static String parseXml(String richText, Function method) {
- if (StrUtil.isBlank(richText)) {
- return richText;
- } else {
- try {
- Document document = XmlUtil.parseXml(richText);
- processHtml(document.getDocumentElement(), method);
- richText = XmlUtil.toStr(document, "UTF-8", false, true);
- } catch (Exception e) {
- log.error("{}解析富文本错误:{}", new Object[]{richText, e.getMessage(), e});
- }
+ private static String parseXml(String richText) {
+ // 1. 解析 HTML
+ Document doc = Jsoup.parse(richText);
- return richText;
- }
- }
-
- private static void processHtml(Element element, Function method) {
- NodeList children = element.getChildNodes();
-
- for(int i = 0; i < children.getLength(); ++i) {
- Node node = children.item(i);
- if (node instanceof Element) {
- Element child = (Element) node;
- if ("img".equalsIgnoreCase(child.getNodeName())) {
- String oldSrc = child.getAttribute("src");
- String newSrc = (String)method.apply(oldSrc);
- child.setAttribute("src", newSrc);
- }
-
- processHtml(child, method);
- }
+ // 2. 遍历所有
标签并修改 src
+ for (Element img : doc.select("img")) {
+ String originalSrc = img.attr("src");
+ img.attr("src", FileUrlUtil.getFileUrl(originalSrc));
}
+ // 3. 获取处理后的 HTML
+ String processedText = doc.body().html();
+
+ return processedText;
}
}