以编程方式操作 HTML 文件对于构建动态网页内容工具和编辑器至关重要。Aspose.HTML for Python via .NET 提供基于标准的 DOM 实现,使您能够从头创建文档、检查现有标记并重写它——全部无需浏览器,也无需正则表达式。本指南将工作划分为三个重点章节:createreadedit,每个章节都有可运行的示例。完成后,您将拥有一个可在任何基于 Python 的内容流水线中使用的可重用工作流。

开始之前:先决条件和安装

要遵循本教程,您需要:

  • 已在开发机器上安装 Python 3.8 或更高版本。
  • 64 位操作系统(Windows、Linux 或 macOS)— 该包随附本机 .NET 二进制文件。
  • 有效的 Aspose.HTML for Python via .NET 许可证(临时许可证可用)。

使用 pip 安装 SDK:

pip install aspose-html-net

您也可以直接从下载页面下载最新的二进制文件。安装完成后,导入您需要的类型:

from aspose.html import HTMLDocument
from aspose.html.saving import HTMLSaveOptions

如果您有许可证文件,请在应用程序启动时一次性应用它,以便输出不受评估限制:

from aspose.html import License

license = License()
license.set_license("Aspense.HTML.Python.lic")

准备好 SDK 后,让我们一起完成这三个核心操作。

逐步构建:在 Python 中创建、读取和编辑 HTML

在 Python 中创建 HTML 文档

空的 HTMLDocument 已经包含了 htmlheadbody 骨架,因此您可以立即开始追加节点。元素由 create_element() 生成,文本节点由 create_text_node() 生成,两者都通过 append_child() 附加到树中。

from aspose.html import HTMLDocument

# An empty document already has <html>, <head>, and <body>
document = HTMLDocument()
document.title = "Sample Document"

# <h1 id="mainHeader">Welcome to Aspose.HTML</h1>
header = document.create_element("h1")
header.set_attribute("id", "mainHeader")
header.append_child(document.create_text_node("Welcome to Aspose.HTML"))
document.body.append_child(header)

# <p>This document was generated programmatically.</p>
paragraph = document.create_element("p")
paragraph.text_content = "This document was generated programmatically."
document.body.append_child(paragraph)

document.save("created.html")

因为每个节点都是通过文档创建的,生成的标记始终是良好结构的——无需手动平衡标签,也无需字符串拼接。

使用 Python 读取现有 HTML 文档

将文件路径传递给 HTMLDocument 构造函数,Aspose.HTML 会将文件解析为实时 DOM 树。随后,您可以像在浏览器中一样进行查询:按 id、按标签名或使用 CSS 选择器。

from aspose.html import HTMLDocument

document = HTMLDocument("created.html")
print("Title:", document.title)

# Look up a single element by its id
header = document.get_element_by_id("mainHeader")
if header is not None:
    print("Header:", header.text_content)

# Iterate over every paragraph in the document
paragraphs = document.get_elements_by_tag_name("p")
for index in range(paragraphs.length):
    print(f"Paragraph {index}:", paragraphs[index].text_content)

# CSS selectors work too
for link in document.query_selector_all("a[href]"):
    print("Link:", link.get_attribute("href"))

# Serialize the whole tree back to markup when you need the raw HTML
print(document.document_element.outer_html)

您还可以通过传递内容以及基 URI 来解析已在内存中的标记,这在 HTML 来自 API 响应时非常方便:

content = "<html><body><p>Loaded from a string.</p></body></html>"
document = HTMLDocument(content, ".")

在 Python 中编辑现有 HTML 文档

编辑只是 DOM 变异:将 text_contentinner_html 赋值,使用 set_attribute() 更改属性,使用 append_child() 插入节点,使用 remove_child() 删除节点。完成后保存结果。

from aspose.html import HTMLDocument

document = HTMLDocument("created.html")
# 1. Update the document title
document.title = "Edited Document Title"

# 2. Replace the header text
header = document.get_element_by_id("mainHeader")
if header is not None:
    header.text_content = "Edited Header via Aspose.HTML"

# 3. Insert a highlighted notice block
notice = document.create_element("div")
notice.set_attribute("class", "highlight")
notice.inner_html = "<strong>Important notice:</strong> This div was inserted at runtime."
document.body.append_child(notice)

# 4. Remove the first paragraph
paragraphs = document.get_elements_by_tag_name("p")
if paragraphs.length > 0:
    obsolete = paragraphs[0]
    obsolete.parent_node.remove_child(obsolete)

document.save("edited.html")

这三个操作简洁地组合在一起:创建一次,随时读取以进行检查,内容更改时随时编辑。

注意: 此代码示例演示了核心功能。在项目中使用之前,请确保更新文件路径(created.htmledited.html 等)以匹配实际文件位置,验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

结论

在 Python 中创建、读取和编辑 HTML 文件变得简单,只需使用 Aspose.HTML for Python via .NET。每个操作都对应熟悉的 DOM 语法:使用 create_element() 构建节点,使用 get_element_by_id()query_selector_all() 查询节点,通过 text_contentinner_htmlset_attribute() 进行修改,最后使用 save() 保存。请记得为生产环境获取合法许可证;产品页面提供了定价信息,临时许可证可从 临时许可证页面 获取。拥有 SDK 后,您现在可以构建强大的 HTML 操作工具,轻松集成到任何基于 Python 的应用程序中。

常见问题

  • 如何在 Python 中使用 Aspose.HTML 创建 HTML 文件? 实例化一个空的 HTMLDocument,使用 create_element()create_text_node() 构建节点,使用 append_child() 将它们附加,然后调用 document.save("created.html")。上面的创建示例展示了完整的步骤。

  • 如何读取现有 HTML 文件的内容? 将文件路径传递给 HTMLDocument 构造函数,然后使用 get_element_by_id()get_elements_by_tag_name()query_selector_all() 查询 DOM。可以通过 text_contentinner_htmlget_attribute() 获取值。

  • 如何编辑 HTML 文档并保存更改? 加载文档,将其分配给 text_contentinner_html,使用 set_attribute() 更改属性,使用 append_child() 添加节点,使用 remove_child() 删除节点。然后调用 document.save(),可选地传入 HTMLSaveOptions 实例。

  • 我在哪里可以找到更多示例、文档和支持? 官方文档 提供详细指南, API 参考 列出所有类和成员,社区可通过 Aspose.HTML 论坛 联系。

阅读更多