如何:将HTML代码更改为方法值?

时间:2017-12-21 13:18:43

标签: c# html

我在c#类库(.dll)中写了一个非常简单的类。此代码创建一个html文件并将其返回到字符串。 代替:<p>NUMBER</p>我想更改它并从此方法中添加int数。

    public class Class1
{
    public string HTMLTable(int number)
    {
        string html = "<p>NUMBER</p>";

        var xDocument = new XDocument(
            new XDocumentType("html", null, null, null),
            new XElement("html",
                new XElement("head"),
                new XElement("body",
                        XElement.Parse(html))
                    )
                )
           )
        );

        var settings = new XmlWriterSettings
        {
            OmitXmlDeclaration = true,
            Indent = true,
            IndentChars = "\t"
        };

        using (var sw = new StringWriter())
        {
            using (var writer = XmlWriter.Create(sw, settings))
            {
                xDocument.WriteTo(writer);
            }

            return sw.ToString();
        }
    }
}

3 个答案:

答案 0 :(得分:2)

您可以使用字符串插值。

var html = $"<p>{number}</p>";

更新:或者对于不想使用更好的字符串插值的人建议,你可以这样做:

var html = string.Format("<p>{0}</p>", number);

答案 1 :(得分:0)

你想要那样的东西;

string.Format("<p>{0}</p>", number);

另外,我建议您使用HtmlAgilityPack来解析和处理HTML。这是一个非常强大的库。您可以在Nuget上找到它。

答案 2 :(得分:0)

如果你有更多的部分需要改变,那么RazorEngine

就是一个不错的选择
using RazorEngine;
using RazorEngine.Templating; // For extension methods.

var template = "<html><body>Hello @Model.Number, welcome to RazorEngine!</body></html>";
var result = Engine.Razor.RunCompile(template, "templateKey", null, new { Number = 10 });

<强>的NuGet

PM> Install-Package RazorEngine -Version 3.10.0