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; } }