在线测试 XPath 表达式

使用 XPath Tester 通过 XPath 表达式查找公共网页中的节点。输入 URL 和 //img、//main//a 或 //*[@data-id] 等表达式。该工具会显示匹配节点,并为同一查询生成 C# 代码。

  1. 输入要检查的网页 URL。
  2. 输入用于定位所需节点的 XPath 表达式。
  3. 单击 Find,检查匹配项,然后复制结果或生成的 C# 代码。


在 C# 中对 HTML 执行 XPath 查询

Aspose.HTML for .NET 针对文档 DOM 计算 XPath 表达式。此示例加载控件中显示的 URL,调用 Evaluate() 并处理返回的 IXPathResult。更改控件中的 URL 或表达式后,此服务器端呈现的 C# 示例会自动更新。上下文节点定义计算的起点,而 XPathResultType 指定所需的结果类型。

C# XPath 查询

using System;
using Aspose.Html;
using Aspose.Html.Dom;
using Aspose.Html.Dom.XPath;

// Create an HTML document
string url = "https://www.aspose.com/";
using HTMLDocument document = new HTMLDocument(url);

// Evaluate the XPath expression
IXPathResult result = document.Evaluate("//a", document, null, XPathResultType.Any, null);

// Process the XPath result
switch (result.ResultType)
{
    case XPathResultType.Number:
        Console.WriteLine(result.NumberValue);
        break;
    case XPathResultType.String:
        Console.WriteLine(result.StringValue);
        break;
    case XPathResultType.Boolean:
        Console.WriteLine(result.BooleanValue);
        break;
    default:
        Node node;
        while ((node = result.IterateNext()) != null)
        {
            if (node is Element element)
            {
                Console.WriteLine(element.OuterHTML);
            }
            else
            {
                Console.WriteLine(node.TextContent);
            }
        }
        break;
}

常用 XPath 查询模式

XPath 可以按名称、属性、位置、层级或文本内容选择元素:

  • //img 选择文档中的所有 <img> 元素。
  • //main//a 选择 <main> 中任意层级的链接。
  • //*[@data-id] 选择具有 data-id 属性的元素。
  • //ul/li[1] 选择每个 <ul> 的第一个 <li> 子元素。
  • //p[contains(normalize-space(.), 'price')] 选择规范化文本中包含 price 的段落。

对于不需要文本条件或 XPath 轴的简洁 class、ID、属性或元素查询, CSS Selector Tester 通常更易于阅读。


在 C# 中使用 XPath API

  1. 从本地 HTML 文件或 URL 创建 HTMLDocument 。
  2. 定义 XPath 表达式并选择适当的上下文节点。
  3. 调用 Evaluate() ,传入表达式、上下文、需要时使用的命名空间解析器以及预期的 XPathResultType 。
  4. 读取返回值,或使用 IterateNext() 遍历匹配节点。

当表达式使用命名空间前缀时,请提供将这些前缀映射到命名空间 URI 的解析器。对于不含前缀的普通 HTML 查询,解析器可以为 null。


XPath 文档和 API 参考

以下资源介绍 XPath 计算、HTML 导航和 XML 专用示例:


安装 Aspose.HTML for .NET

使用 .NET CLI 从 NuGet 安装 Aspose.HTML for .NET :

dotnet add package Aspose.HTML

您也可以使用 NuGet 包管理器界面,或在包管理器控制台中运行 Install-Package Aspose.HTML。有关配置详情,请参阅 安装指南 ;如需不受评估版限制地测试 API,请申请 临时许可证 。


常见问题

1. 什么是 XPath 表达式?

XPath 表达式是一种从 HTML 或 XML 文档树中选择节点或计算值的查询。它可以使用路径、轴、谓词和函数来描述所需结果。

2. XPath 能否同时查询 HTML 和 XML?

可以。XPath 在 DOM 树上运行,可以选择 HTML 或 XML 文档中的节点。在线工具适用于公共 HTML 网页;如果需要处理命名空间或执行 XML 专用加载,请使用文档中介绍的 C# XML 工作流。

3. 为什么 XPath 表达式没有返回节点?

请检查节点名称、谓词、上下文节点和加载的文档结构。对于 XML 或带命名空间的内容,还需要提供将表达式中的每个前缀映射到相应 URI 的命名空间解析器。

4. 何时应使用 XPath 而不是 CSS Selector?

当查询需要匹配文本、定位祖先或兄弟节点,或应用难以用 CSS 表达的谓词时,请使用 XPath。对于常见的 class、ID、属性和后代查询,请使用 CSS Selector。

相关 HTML 选择和编辑工作流

继续使用 C# 处理 CSS Selector、DOM 编辑、表格数据提取或图像提取。