猿问

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

我正在使用带有占位符标签([[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 文本中替换。


隔江千里
浏览 74回答 1
1回答

米琪卡哇伊

查找/替换可能就是您正在寻找的。使用语句:using System.Text.RegularExpressions;方法:public string ReadForm(FormViewModel formModel){&nbsp; &nbsp; string formText = formModel.FormText;&nbsp; &nbsp; formText = formText.Replace("[[placeholder1]]", GetItems1(formModel.ID));&nbsp; &nbsp; formText = formText.Replace("[[placeholder2]]", GetItems2(formModel.ID));&nbsp; &nbsp; formText = formText.Replace("[[placeholder3]]", GetItems3(formModel.ID));&nbsp; &nbsp; formText = formText.Replace("[[placeholder4]]", GetItems4(formModel.ID));&nbsp; &nbsp; formText = Regex.Replace(formText, @"\[\[(.*?)\]\]", "$1");&nbsp; &nbsp; return formText;}Regex.Replace完成默认块的功能:用标签内的名称替换标签内的任何内容。
随时随地看视频慕课网APP
我要回答