用于解析 Markdown 文件的 C# API

使用 C# 库功能创建元素、删除或编辑 MD 文档现有节点的内容。

使用 C# 解析 Markdown 文件

Aspose.HTML for .NET 库为C#平台提供Markdown解析API。 Aspose.Html.Toolkit.Markdown.Parser 命名空间包含提供完整 Markdown 解析的类和方法和渲染。

您可以通过以下链接创建、编辑、保存、合并、转换 MD 文件为其他文件格式,以及将链接、列表、代码块、图像和其他元素添加到 Markdown 文件中:



如何在 C# 中解析 Markdown

在 C# 中以编程方式编辑 Markdown 的任务是修改 MD 文档树中的元素。 Aspose.HTML for .NET API 支持一组在 GitHub Flavored Markdown 规范中定义的 MD 元素,以及有关如何嵌套元素的规则。此外, Aspose.Html.Toolkit.Markdown.Extensions 命名空间包含用于操作 Markdown 语法的类和方法基于不属于 GFM 规范的规范的树。考虑解析和编辑 Markdown 的简单步骤。让我们解析 Markdown 并将文本内容编辑到其中:


在 C# 中解析和编辑 Markdown

    // Specify the path to the source MD file
    var input = "C:/temp/input.md";

    // Create a MarkdownParser object
    var parser = new MarkdownParser();

    // Parse the MD document and get a syntax tree
    var markdown = parser.ParseFile(input);
    
    // Create a TreeWalker object and navigate through the syntax tree starting at the first node
    using var iterator = markdown.CreateTreeWalker(markdown.FirstChild);
    while (iterator.NextNode() != null)
    {
        // Check the type of the current node as EmphasisSyntax
        if (iterator.CurrentNode is EmphasisSyntaxNode)
        {
            var node = (EmphasisSyntaxNode)iterator.CurrentNode;
            var n = node.FirstChild;
            while (n != null)
            {
                var next = n.NextSibling;
                // Remove the EmphasisSyntax node
                node.RemoveChild(n);
                n = next;
            }

            // Get a SyntaxFactory to create new elements 
            var syntax = markdown.SyntaxFactory;

            // Add the text to a new node
            node.AppendChild(syntax.Text("new text with"));

            // Add whitespase
            node.AppendChild(syntax.Whitespace());

            // Create an emphasis object
            var emphasis = syntax.Emphasis(Emphasis.Strong);

            // Add the text into empasis and accumulate a new node
            emphasis.AppendChild(syntax.Text("strong emphasis!"));
            node.AppendChild(emphasis);
            break;
        }
    }

    // Prepare a path for MD file saving 
    string savePath = Path.Combine(OutputDir, "output-edit.md");

    // Save MD file
    markdown.Save(savePath);
        



在 C# 中解析和编辑 Markdown 的步骤

考虑解析 Markdown 和编辑现有文本内容的简单步骤:

  1. 指定源MD文件路径,使用 MarkdownParser() 构造函数来初始化 MarkdownParser 类的新实例。
  2. 调用 ParseFile() 方法解析Markdown,得到语法树.
  3. 创建一个 TreeWalker 对象并在 Markdown 语法树中导航并删除不必要的内容 – EmphasisSyntax 节点。
  4. 使用 SyntaxFactory 属性获取语法工厂以创建新元素。
  5. 新建一个文本节点,将文本内容添加到新的强调中。
  6. 使用 AppendChild() 方法将新节点添加到语法树中。
  7. Save() 方法保存编辑好的MD文件。

文档

要了解有关 Aspose.HTML API 的更多信息,请访问我们的 文档 指南。您可以从 GitHub 存储库下载示例。它们是开源的,可以在您自己的应用程序中自由使用。

Markdown 是一种简单的标记语言,可让您格式化纯文本。 MD 的作者约翰·格鲁伯 (John Gruber) 设计 Markdown 的格式化语法的目的是使其尽可能具有可读性。 Markdown 通常用作文档和自述文件的格式,因为它允许以易于阅读和易于编写的风格编写。 Markdown 语法 文档文章提供了有关 Markdown 主要元素的信息、Markdown 语法的详细信息和示例。



.NET HTML API 入门

您可以使用多种方式在您的系统上安装适用于 .NET 的 Aspose.HTML 库:

  1. 使用 NuGet 包管理器 GUI 安装 NuGet 包
  2. 使用包管理器控制台安装 NuGet 包。
  3. 通过 MSI 安装 Aspose.HTML for .NET。

该库支持解析 HTML5、CSS3、SVG 和 HTML Canvas,以构建基于 WHATWG DOM 标准的文档对象模型 (DOM)。 Aspose.HTML for .NET 完全用 C# 编写,可用于构建任何类型的 32 位或 64 位 .NET 应用程序,包括 ASP.NET、WCF、WinForms 和 .NET Core。在运行 .NET 转换示例代码之前,请确保您拥有 Microsoft Windows 等操作系统或与 .NET Framework 或 .NET Standard 兼容的操作系统,以及 Microsoft Visual Studio 等开发环境。有关 C# 库安装和系统要求的更多详细信息,请参阅 Aspose.HTML 文档

系统要求

所有主要平台和操作系统都支持我们的 API。在执行代码之前,请确保您的系统具备以下先决条件。

  • Microsoft Windows 或具有 .NET Framework、.NET Core、Windows Azure、Mono 或 Xamarin 平台的兼容操作系统。
  • Microsoft Visual Studio 等开发环境。
  • Aspose.Html for .NET DLL 在您的项目中引用 – 使用上面的下载按钮从 NuGet 安装。

其他支持的 .NET API 功能

使用高级网络抓取和 HTML 解析库 Aspose.HTML,您可以创建、编辑、浏览节点、提取数据、合并并将 HTML、XHTML、MD、EPUB 和 MHTML 文件转换为 PDF、XPS、DOCX、图像和其他格式。