在线测试 XPath 表达式
使用 XPath Tester 通过 XPath 表达式查找公共网页中的节点。输入 URL 和 //img、//main//a 或 //*[@data-id] 等表达式。该工具会显示匹配节点,并为同一查询生成 C# 代码。
- 输入要检查的网页 URL。
- 输入用于定位所需节点的 XPath 表达式。
- 单击 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
- 从本地 HTML 文件或 URL 创建
HTMLDocument。 - 定义 XPath 表达式并选择适当的上下文节点。
- 调用
Evaluate(),传入表达式、上下文、需要时使用的命名空间解析器以及预期的XPathResultType。 - 读取返回值,或使用
IterateNext()遍历匹配节点。
当表达式使用命名空间前缀时,请提供将这些前缀映射到命名空间 URI 的解析器。对于不含前缀的普通 HTML 查询,解析器可以为 null。
XPath 文档和 API 参考
以下资源介绍 XPath 计算、HTML 导航和 XML 专用示例:
- 如何在 HTML 中使用 XPath
说明
Evaluate()参数以及如何在 C# 中选择节点。 - 在 C# 中导航 HTML 比较 XPath、CSS Selector 和直接 DOM 导航。
- 使用 XPath 选择 XML 节点 介绍针对 XML 文档的 XPath 查询。
安装 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 编辑、表格数据提取或图像提取。