You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请问是否存在可用于Ballerina的HTML标签移除类库?

移除Ballerina字符串中的HTML标签

如果找不到现成的类库,直接用Ballerina的正则表达式功能就能快速实现需求,以下是两种可行的实现方式:

方法一:基础版——移除所有HTML标签

利用ballerina/regex模块的replaceAll函数,匹配并移除所有HTML标签(包括带属性的自闭合标签):

import ballerina/regex;
import ballerina/io;

function stripHtmlTags(string input) returns string {
    // 匹配所有以<开头、>结尾的HTML标签内容
    return regex:replaceAll(input, "<[^>]+>", "");
}

// 示例调用
public function main() {
    string rawReportField = "<div class='result'><h3>高危漏洞</h3><p>共检测到5个</p></div>";
    string cleanContent = stripHtmlTags(rawReportField);
    io:println(cleanContent); // 输出:高危漏洞共检测到5个
}

方法二:进阶版——保留基础文本格式

如果需要保留换行、段落这类可读性格式(比如把<br>、</p>转成换行符),可以扩展替换逻辑:

import ballerina/regex;
import ballerina/io;

function stripHtmlTagsWithFormat(string input) returns string {
    // 先替换换行类标签为换行符
    string formatted = regex:replaceAll(input, "<br\\s*/?>|</p>", "\n\n");
    // 移除剩余所有HTML标签
    return regex:replaceAll(formatted, "<[^>]+>", "");
}

// 示例调用
public function main() {
    string rawReportField = "<p>漏洞详情:</p><br><p>1. SQL注入(高危)</p><p>2. 弱密码(中危)</p>";
    string cleanContent = stripHtmlTagsWithFormat(rawReportField);
    io:println(cleanContent);
    // 输出:
    // 漏洞详情:
    //
    // 1. SQL注入(高危)
    //
    // 2. 弱密码(中危)
}

额外提示

  • 如果扫描报告里有HTML注释、CDATA块这类特殊内容,可以先通过regex:replaceAll(input, "<!--.*?-->|<!\\[CDATA\\[.*?\\]\\]>", "")提前清理,再执行标签移除。
  • 若遇到异常格式的嵌套HTML,正则处理不够严谨的话,可以通过Ballerina的Java互调用能力,直接使用Java的JSoup库做解析,但对于扫描报告这类结构化程度不高的文本,正则方案足够轻量高效。

内容的提问来源于stack exchange,提问作者Gayal Dassanayake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:12:04