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

如何在Dynamics 365中提取富文本字段的纯文本值

从Dynamics 365富文本字段提取纯文本的解决方案

直接通过formContext.getAttribute("description")获取的是字段属性对象,并非实际内容;调用getValue()后得到的是带HTML格式的字符串,需要做转换处理才能提取纯文本。以下是两种可靠的实现方式:

方法一:使用DOMParser解析HTML

利用浏览器内置的DOMParser工具直接解析HTML内容,提取纯文本,适合现代Dynamics 365表单环境:

function extractPlainText(formContext) {
    var htmlContent = formContext.getAttribute("description").getValue();
    if (!htmlContent) return ""; // 处理字段为空的情况

    const parser = new DOMParser();
    const doc = parser.parseFromString(htmlContent, "text/html");
    return doc.body.textContent || doc.body.innerText;
}

方法二:通过临时DOM元素转换

如果需要兼容旧版环境,或者需要额外清理风险元素(如脚本标签),可以创建临时DOM元素来处理:

function getPlainText(htmlStr) {
    if (!htmlStr) return "";
    
    const tempDiv = document.createElement("div");
    tempDiv.innerHTML = htmlStr;
    
    // 可选:移除HTML中的脚本标签,避免潜在风险
    const scripts = tempDiv.getElementsByTagName("script");
    for (let i = scripts.length - 1; i >= 0; i--) {
        scripts[i].remove();
    }
    
    return tempDiv.textContent || tempDiv.innerText;
}

// 调用示例
const richTextHtml = formContext.getAttribute("description").getValue();
const plainText = getPlainText(richTextHtml);

注意事项

  • 必须先判断getValue()的返回值是否为空,否则会触发空指针异常
  • 两种方法都会保留文本的基本换行、分段结构,符合用户输入的原始排版逻辑
  • 若字段未启用富文本格式,直接调用getValue()即可获取纯文本,无需转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:12:03