为了账号安全,请及时绑定邮箱和手机立即绑定

如何读取 HTML 文档文本并替换 API 调用响应中括号内的字符串

如何读取 HTML 文档文本并替换 API 调用响应中括号内的字符串

PHP
隔江千里 2024-01-20 20:58:37
我正在使用带有占位符标签([[tagname]])的文本编辑器编写文档创建器。我需要能够将 HTML 文本发送给阅读器,该阅读器将找到每个占位符并将其替换为 API 调用的响应文本。我让阅读器服务接受 HTML 文本,并尝试拆分 (" ") 来分隔每个单词,通过 for 循环运行单词并调用 ("[[", "]] 上的 .Between 服务扩展方法") 来查找占位符。然后,我对其找到的占位符进行切换,并调用阅读器服务中的方法来进行 API 调用。问题是最终结果是一个空字符串。我不确定我错过了什么。    public string ReadForm(FormViewModel formModel)    {        var form = "";        var formText = formModel.FormText;        formText.Split(" ");        for (int i = 0; i < formText.Length; i++)        {            var formTextIndex = formText[i].ToString();            var formTagItem = formTextIndex.Between("[[", "]]");            if (formTagItem.ToString() != null)            {                switch (formTagItem)                {                    case "placeholder1":                        formTagItem = GetItems1(formModel.ID);                        form += $"{formTagItem} ";                        break;                    case "placeholder2":                        formTagItem = GetItems2(formModel.ID);                        form += $"{formTagItem} ";                        break;                    case "placeholder3":                        formTagItem = GetItems3(formModel.ID);                        form += $"{formTagItem} ";                        break;                    case "placeholder4":                        formTagItem = GetItems4(formModel.ID);                        form += $"{formTagItem} ";                        break;                    default:                        form += $"{formTagItem} ";                        break;                }            }            else            {                form += $"{formText[i]} ";            }        }        return form;    }我对表单的预期结果是占位符将替换为返回值,然后在 HTML 文本中替换。
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

查找/替换可能就是您正在寻找的。


使用语句:


using System.Text.RegularExpressions;

方法:


public string ReadForm(FormViewModel formModel)

{

    string formText = formModel.FormText;

    formText = formText.Replace("[[placeholder1]]", GetItems1(formModel.ID));

    formText = formText.Replace("[[placeholder2]]", GetItems2(formModel.ID));

    formText = formText.Replace("[[placeholder3]]", GetItems3(formModel.ID));

    formText = formText.Replace("[[placeholder4]]", GetItems4(formModel.ID));

    formText = Regex.Replace(formText, @"\[\[(.*?)\]\]", "$1");

    return formText;

}

Regex.Replace完成默认块的功能:用标签内的名称替换标签内的任何内容。


查看完整回答
反对 回复 2024-01-20
  • 1 回答
  • 0 关注
  • 29 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信